Swing JButton中的默认属性(颜色)(默认)

时间:2015-07-29 11:36:56

标签: java swing jbutton

我试图在Swing JButton中获取背景颜色(默认)。返回的颜色是RGB(238,238,238),但它不是我需要的。 将背景颜色更改为其他颜色后,如何将背景颜色恢复为默认值?

JPanel panelButtons = new JPanel();
JButton button_01 = new JButton("01");
panelButtons.add(button_01);

默认JButton:

enter image description here

在我的代码的某个条件下,我定义了:

button_01.setBackground(Color.BLACK);
button_01.setForeground(Color.GREEN);

JButton的背景颜色和前景发生了变化:

enter image description here

在我的代码的另一个条件中,我需要将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);

结果是一样的:

enter image description here

如何将JButton button_01 恢复为默认主题颜色?

2 个答案:

答案 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"));