ActionListener未按预期工作

时间:2017-03-26 05:42:15

标签: java json swing actionlistener

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,如果它有效,即使我改变为无效,它也会打印出来

1 个答案:

答案 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()));
    }

}