在 EditMSFrame 类中,我有JTextPane,其中写有JSON。在按钮上单击我检查它是否是有效的JSON。
现在,如果我像这样写
this.checkButton.addActionListener(e -> {
System.out.println(isValid(getTextPane().getText()));
});
它正常工作,并在我更改JTextPane中的文本时写入true / false。
但如果我这样写的话
this.checkButton.addActionListener(new ValidateJSON());
-
public class ValidateJSON implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
EditMSFrame editMSframe = new EditMSFrame();
System.out.println(editMSframe.isValid(editMSframe.getTextPane().getText()));
}
}
它只会检查一次JSON,如果它有效,即使我改变为无效,它也会打印出来
答案 0 :(得分:2)
小心编辑我的代码?
老实说,我不应该,这是编程101.坦率地说,你应该咨询一本好的教科书或教程,比如Passing Information to a Method or a Constructor
对不起,如果这让我成为一个A洞,但你会为这项努力做出更好的编程
public class ValidateJSON implements ActionListener {
private EditMSFrame editMSframe;
public ValidateJSON(EditMSFrame someInstance) {
editMSframe = someInstance;
}
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println(editMSframe.isValid(editMSframe.getTextPane().getText()));
}
}