java - 在按下 JAVA 时更改 JButton 的 BG 颜色

标签 java swing colors jbutton

我是 GUI 的新手,想知道如何在按下相应按钮时更改 JButton 的 BG 颜色。我第一次不确定如何正确构建 GUI。

public static void createWindow(int x)
    {
         JFrame frame = new JFrame("WINDOW");
         frame.setSize(40*x, 40*x);

         JPanel panel = new JPanel();
         panel.setLayout(new FlowLayout());

         for(int i = 0; i < x * x; i++)
         {
             JButton button = new JButton();
             button.setPreferredSize(new Dimension(40, 40));
             panel.add(button);
             button.addActionListener(new Action());
         }

         frame.add(panel);

         frame.setLocationRelativeTo(null);
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.setVisible(true);

    }

    static class Action implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            //changes color of button
        }
    }

最佳答案

您的 ActionListener 可能类似于:

    public void actionPerformed(ActionEvent e)
    {
        JButton button = (JButton)e.getSource();
        button.setBackground( Color.RED );
    }

而且您只需要一个 ActionListener,因为该代码是通用的,因为单击的按钮将来自该事件。

另外,不要使用 Action 作为类名。有一个同名的接口(interface),所以它会让人感到困惑。使用更具描述性的名称。

关于java - 在按下 JAVA 时更改 JButton 的 BG 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33136262/

相关文章:

java - 创建maven spring boot项目的Jar

java - 如何使用静态方法搜索文件目录并返回对象?

Java 布局管理器建议

java - JFrame 最小化后不会重新最大化

OpenGL 2D 形状问题

java - 如何使用缓冲阅读器在文件中搜索字符串

vim - 如何在vim中获取背景颜色?

java - 需要更改具有不同形状的 JButton 的颜色

colors - mercurial 颜色扩展的有效颜色是什么?

java - 注册为 ServletContextListener 的类的生命周期是什么