下面是在特定的pannel3上以网格布局形式创建9个按钮的代码。我想要的是让每个按钮的背景都以灰色文字覆盖黑色。 任何人都可以帮忙吗?如何在Java GUI中设置按钮的背景颜色?
for(int i=1;i<=9;i++)
{
p3.add(new JButton(""+i));
}
下面是在特定的pannel3上以网格布局形式创建9个按钮的代码。我想要的是让每个按钮的背景都以灰色文字覆盖黑色。 任何人都可以帮忙吗?如何在Java GUI中设置按钮的背景颜色?
for(int i=1;i<=9;i++)
{
p3.add(new JButton(""+i));
}
检查出JButton文档。请特别注意从JComponent
继承的setBackground
和setForeground
方法。
喜欢的东西:
for(int i=1;i<=9;i++)
{
JButton btn = new JButton(String.valueOf(i));
btn.setBackground(Color.BLACK);
btn.setForeground(Color.GRAY);
p3.add(btn);
}
这不适用于Mac上的Java 8。背景颜色是按钮背后的颜色。该按钮然后被绘制在黑色背景的顶部,并且该按钮是灰色并带有灰色文本。 (你不能阅读文本)。事实上,更糟糕的是,除非先调用setOpaque(true)',否则黑色背景根本不会被绘制。 – Jason 2016-03-10 23:25:46
for(int i=1;i<=9;i++) {
p3.add(new JButton(""+i) {{
// initialize the JButton directly
setBackground(Color.BLACK);
setForeground(Color.GRAY);
}});
}
使用setBackground方法来设置背景和setForeground改变文本的颜色。但请注意,将灰色文本置于黑色背景中可能会使您的文本难以阅读。
您可能或可能不必使用setOpaque方法,以确保通过传递true方法显示颜色。
看来,setBackground()方法在某些平台(我正在使用Windows 7)上无法正常工作。我发现this answer到this question有帮助。但是,我并没有完全用它来解决我的问题。相反,我认为将按钮旁边的面板着色要容易得多,而且几乎是美观的。
简单:
btn.setBackground(Color.red);
要使用RGB值:
btn[i].setBackground(Color.RGBtoHSB(int, int, int, float[]));
我喜欢用btn.setBackground(New Color(int,int,int));为RGB值 – 2016-01-26 02:02:28
更改背景属性可能没有足够的组件将不会看起来像一个按钮了。您可能需要重新实现paint方法,如here以获得更好的结果:
老实说,人,使用IDE。自动完成是学习语言库的最佳方法之一,方法名称通常是不言自明的。 – 2010-11-14 04:36:01
@DenisTulskiy为什么你的评论是必要的? – Ungeheuer 2015-06-02 02:55:24
@JohnnyCoder,我想我很沮丧,这是我说rtfm的方式。我仍然认为这是一个很好的建议,尽管:) – 2015-06-02 04:29:26