Java Alter Swing Element来自子类

时间:2016-01-08 23:11:19

标签: java swing class scope parent-child

我遇到了一些我不理解的问题。我有一个java类正在构建我的程序,另一个类充满了由动作侦听器调用的函数。

我希望使用子类的函数来改变JLabel的内容(只是一个例子),使用一个似乎没有做任何事情并且不会崩溃的setter函数。

我的主要班级有

public class Parent extends JFrame {

    static JPanel  dummyPanel  = new JPanel();
    static JLabel  dummyLabel  = new JLabel("label");
    static JButton dummyButton = new JButton("button");
    static Child   child       = new Child();

    public Parent() {

        // main setup goes here

        // add elements goes here

        ActionListener alterLabel = new ActionListener() {
            public void actionPerformed(ActionEvent dummyButton) {
                child.childFunc();
            }
        }
        dummyButton.addActionListener(alterLabel);

    }

    // main function goes here

    public void newText() {
        dummyLabel.setText("altered");
        System.out.println("new text function has been executed");
    }

}

然后我用来调用函数来更改文本的子包含

public class Child {

    public void childFunc() {
        Parent parent = new Parent();
        parent.newText();
    }

}

当我点击它运行的按钮时,我看到它输出了我期望的字符串,但它似乎没有改变标签。

为什么会这样,有没有办法解决它?

0 个答案:

没有答案