2017-03-26 8 views
0

の中EditMSFrameクラス私はJSONを記述したJTextPaneを持っています。ボタンをクリックすると、有効なJSONかどうかがチェックされます。今ActionListenerが意図した通りに動作しません

、私はこの

this.checkButton.addActionListener(e -> { 
     System.out.println(isValid(getTextPane().getText())); 
}); 

のようにそれを書いた場合、それは正常に動作し、私はJTextPaneのの内のテキストを変更すると真/偽書き込みます。

しかし、私は次のようにそれを書いた場合、この

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をチェックし、それが有効であれば、それは非する場合、私は変更する場合も同様に印刷されます-valid

+1

画面 – MadProgrammer

+0

に実際にある 'EditMSFrame'のインスタンスを取る' ValidateJSON'クラスにコンストラクタを追加のためのより良いプログラミングになるだろうと私は何をすべきかそのコンストラクタの中に入れますか? – Alchyy

+0

アクションクラス – MadProgrammer

答えて

2

私のコードに編集してください。

これは私行う場合正直なところ、私は、これはあなたがPassing Information to a Method or a Constructor

のように、良いテキスト本やチュートリアルを相談しなければならない、率直に言って101をプログラムしている必要はありませんごめんなさい穴は、しかし、あなたは努力

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

} 
関連する問題