我试图在Swing JButton中获取背景颜色(默认)。返回的颜色是RGB(238,238,238),但它不是我需要的。 将背景颜色更改为其他颜色后,如何将背景颜色恢复为默认值?
JPanel panelButtons = new JPanel();
JButton button_01 = new JButton("01");
panelButtons.add(button_01);
默认JButton:
在我的代码的某个条件下,我定义了:
button_01.setBackground(Color.BLACK);
button_01.setForeground(Color.GREEN);
JButton的背景颜色和前景发生了变化:
在我的代码的另一个条件中,我需要将JButton button_01 的背景颜色返回到旧配置:
我尝试将背景设置为 null 和 UIManager.getColor(“panelButtons.background”):
button_01.setBackground(null);
button_01.setForeground(Color.BLACK);
或
button_01.setBackground(UIManager.getColor("panelButtons.background"));
button_01.setForeground(Color.BLACK);
结果是一样的:
如何将JButton button_01 恢复为默认主题颜色?
答案 0 :(得分:1)
将背景颜色更改为其他颜色后,如何将背景颜色恢复为默认值?
尝试将JButton的背景设置为null
。例如:
myButton.setBackground(null);
例如:
import java.awt.Color;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class ChangeButtonColor {
private static void createAndShowGui() {
final JButton myButton = new JButton(new AbstractAction("Press Me To Swap Colors") {
private boolean flag = true;
@Override
public void actionPerformed(ActionEvent e) {
Color c = flag ? Color.RED : null;
((AbstractButton) e.getSource()).setBackground(c);
flag = !flag;
}
});
JPanel mainPanel = new JPanel();
mainPanel.add(myButton);
JFrame frame = new JFrame("GUI");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
答案 1 :(得分:0)
您使用的是错误的UIManager属性。你需要使用“Button.background”。这是获得所有Java外观和背景的背景的通用方法。
button.setBackground(UIManager.getColor("Button.background"));