如何设置Jbutton的颜色

发布于 2024-12-11 07:07:31 字数 346 浏览 0 评论 0原文

如何设置 JButton 的颜色?

我已经尝试过:

button.setBackground(Color.red);

但没有成功。这只是改变按钮边框的颜色。 然后我尝试覆盖 paintComponents

public void paintComponent(Graphics g) {
   g.setColor(Color.GREEN);
   g.fillRect(0, 0, getSize().width, getSize().height);
}

但现在我看不到 JButton 上的文本

How can I set the color of a JButton ?

I have tried this:

button.setBackground(Color.red);

but with no success. This just changes the color of button's border.
I then tried to override paintComponents

public void paintComponent(Graphics g) {
   g.setColor(Color.GREEN);
   g.fillRect(0, 0, getSize().width, getSize().height);
}

but now I don't see the text on the JButton

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眼泪也成诗 2024-12-18 07:07:31

为按钮着色的最佳方法是使用图像图标而不是文本。
您可以使用 Gimp 来设计它们。

确保背景是透明的

button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/myimage.png")));

这是一个禁用的 button.setDisabledIcon(... 按钮:

在此处输入图像描述

这是已启用的按钮,未按下:

在此处输入图像描述

这是已按下的启用按钮:

在此处输入图像描述

按下后背景颜色的变化是由 Swing 完成的,为此您只需要 2 个图像。

The best way to color your buttons is to use ImageIcons instead of text.
You could use Gimp in order to design them.

Make sure that the background is transparent!

button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/myimage.png")));

This is a disabled button.setDisabledIcon(... button:

enter image description here

This is an enabled button, not pressed:

enter image description here

This is a pressed enabled button:

enter image description here

The background color-change after pressing is done by Swing. You need just 2 images for this.

素食主义者 2024-12-18 07:07:31

背景颜色的影响取决于您的外观和感觉。请参阅 http://download.oracle.com/javase/tutorial/uiswing/ Lookandfeel/index.html

您应该选择按照您想要的方式使用背景颜色的外观。我不知道你现在用的是什么。如果您有默认的 LAF,设置颜色并删除边框就足够了:

button.setBackground(color);
button.setBorder(null);

What the background color affects depends on your look and feel. See http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/index.html

You should choose a look and feel that uses the background color the way you want. I don't know what you are using at the moment. If you have the default LAF setting the color and removing the border should be enough:

button.setBackground(color);
button.setBorder(null);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文