下面是在特定的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