我遇到了一些我不理解的问题。我有一个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();
}
}
当我点击它运行的按钮时,我看到它输出了我期望的字符串,但它似乎没有改变标签。
为什么会这样,有没有办法解决它?