如何从另一个类更改 JPanel 的颜色。爪哇

库贝克

我在从另一个类更改 JPanels 颜色时遇到问题。我正在尝试通过单击按钮来更改它。我正在创建一个应用程序,用户可以在其中选择他想要的颜色主题。

第一课:

public class First extends JFrame {

    public JPanel contentPane = new JPanel();
    public JPanel panel = new JPanel();

    public First() {

        JButton btnNewButton = new JButton("New button");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                Second s = new Second();
                s.startSecond();
            }
        });
    }
 }

第二类:

public class Second extends JFrame {
    First f;
    private JPanel contentPane;

    public static void startSecond() {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Second sframe = new faijaso();
                    sframe.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public Second() {   
        JButton btnNewButton = new JButton("New button");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                f.panel.setBackground(Color.red);
                f.panel.repaint();
                f.panel.revalidate();
            }
        });
    }

}
知道的不多,但越来越好

这段代码有几个问题,但最重要的是,你的First f变量从未被初始化为空,因此如果你试图调用它的方法,程序将抛出 NullPointerException。您当然不想创建 anew First()并将其分配给,f因为该实例将与已经存在的可视化 First 不同。而是将 Second 的构造函数更改为接受 First 参数,然后在调用 Second 的构造函数时传入当前实例。

public Second(First f) {   
    this.f = f;
    // ....

并在第一:

public First() {

    JButton btnNewButton = new JButton("New button");
    btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            Second s = new Second();
            s.startSecond(First.this);  // pass in the First instance
        }
    });
}

其他问题——

  • 去掉 Second 中的静态代码,因为没有必要这样做。而是在 First 的 ActionListener 中设置 Second 可见。
  • 你真的希望使用两个JFrames,而这个链接会告诉你原因:使用多个JFrames的:好还是不好的做法?.
  • 而是让 Second 成为 JDialog。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用来自另一个类的 ActionListener 更改 JPanel 颜色?

来自分类Dev

如何从Jpanel更改Jpanel的Jframe cardlayout中的“ card”,它属于card并放置在另一个类中?

来自分类Dev

JPanel - 更改 JPanel 的背景颜色时出错

来自分类Dev

从另一个类中删除jPanel

来自分类Dev

从另一个JPanel更改一个变量的值时,更新JPanel的标签

来自分类Dev

从另一个类调用另一个JFrame / JPanel

来自分类Dev

如何从另一个更改viewController的颜色(或主题)?

来自分类Dev

如何从NetBeans中的另一个类方法调用Java swing Jpanel?

来自分类Dev

在Java中,如何使用另一个类中的数据绘制JPanel?

来自分类Dev

如何使用 JButton 将 JFrame 类与另一个 JPanel 链接

来自分类Dev

将JPanel更改为JFrame上的另一个。如何?

来自分类Dev

将一个 JPanel 类放入另一个类的 JFrame

来自分类Dev

另一个Jpanel内的Jpanel

来自分类Dev

将JPanel从一个类添加到另一个类中的JPanel

来自分类Dev

如何更改包含JRadioButton的jPanel的背景颜色?

来自分类Dev

如何更改JPanel的边框(内部)颜色?

来自分类Dev

我如何处理从另一个类返回的嵌套哈希映射值?爪哇

来自分类Dev

我如何处理从另一个类返回的嵌套哈希映射值?爪哇

来自分类Dev

如何快速从一个屏幕更改另一个屏幕的颜色?

来自分类Dev

如何在悬停另一个元素时更改一个元素的颜色?

来自分类Dev

如何在Java中的另一个JPanel中获取JPanel的组件

来自分类Dev

在JPanel Java中更改形状列表的颜色

来自分类Dev

如何从一个 jpanel 到另一个 jpanel 画一条线

来自分类Dev

如何从一个JFrame或JPanel到Netbeans中的另一个?

来自分类Dev

如何将一个JPanel的特定坐标绘制到另一个JPanel上

来自分类Dev

在另一个类中添加组件时,JPanel不会更新

来自分类Dev

将另一个类中的对象添加到JPanel

来自分类Dev

从另一个类进行绘制不会采用JPanel的正确尺寸

来自分类Dev

在另一个类中添加组件时,JPanel不会更新

Related 相关文章

  1. 1

    如何使用来自另一个类的 ActionListener 更改 JPanel 颜色?

  2. 2

    如何从Jpanel更改Jpanel的Jframe cardlayout中的“ card”,它属于card并放置在另一个类中?

  3. 3

    JPanel - 更改 JPanel 的背景颜色时出错

  4. 4

    从另一个类中删除jPanel

  5. 5

    从另一个JPanel更改一个变量的值时,更新JPanel的标签

  6. 6

    从另一个类调用另一个JFrame / JPanel

  7. 7

    如何从另一个更改viewController的颜色(或主题)?

  8. 8

    如何从NetBeans中的另一个类方法调用Java swing Jpanel?

  9. 9

    在Java中,如何使用另一个类中的数据绘制JPanel?

  10. 10

    如何使用 JButton 将 JFrame 类与另一个 JPanel 链接

  11. 11

    将JPanel更改为JFrame上的另一个。如何?

  12. 12

    将一个 JPanel 类放入另一个类的 JFrame

  13. 13

    另一个Jpanel内的Jpanel

  14. 14

    将JPanel从一个类添加到另一个类中的JPanel

  15. 15

    如何更改包含JRadioButton的jPanel的背景颜色?

  16. 16

    如何更改JPanel的边框(内部)颜色?

  17. 17

    我如何处理从另一个类返回的嵌套哈希映射值?爪哇

  18. 18

    我如何处理从另一个类返回的嵌套哈希映射值?爪哇

  19. 19

    如何快速从一个屏幕更改另一个屏幕的颜色?

  20. 20

    如何在悬停另一个元素时更改一个元素的颜色?

  21. 21

    如何在Java中的另一个JPanel中获取JPanel的组件

  22. 22

    在JPanel Java中更改形状列表的颜色

  23. 23

    如何从一个 jpanel 到另一个 jpanel 画一条线

  24. 24

    如何从一个JFrame或JPanel到Netbeans中的另一个?

  25. 25

    如何将一个JPanel的特定坐标绘制到另一个JPanel上

  26. 26

    在另一个类中添加组件时,JPanel不会更新

  27. 27

    将另一个类中的对象添加到JPanel

  28. 28

    从另一个类进行绘制不会采用JPanel的正确尺寸

  29. 29

    在另一个类中添加组件时,JPanel不会更新

热门标签

归档