2017-05-13 11 views
0

私はクラスClient.Function1()を持つクライアントを持っていると言う。 LoginGUIクラスのJButtonをClientクラスのFunction1にするにはどうすればよいですか?JButton actionPerformed別のクラス

LoginGUIクラスのClientインスタンスを初期化したくありません。

+1

メイク 'Client'多分シングルトン:

はその後、ちょうど別のアクションリスナーを追加しますか?とにかく 'Client'を初期化したくないのはなぜですか? – Sweeper

+0

My Clientクラスは一度だけ初期化する必要があります。これは、ソートのリモートサーバー接続を行います。 GUIでクライアントを初期化することはできますが、その優れた設計構造ですか? –

+0

その場合、シングルトンのパターンを調べることを強くお勧めします。オンラインで検索! – Sweeper

答えて

1

シングルトンクラスでアクションリスナーを使用する方法を示します。

class Client implements ActionListener { 
    private static Client instance = new Client(); 
    public static Client getInstance() { return instance; } 

    public void actionPerformed(ActionEvent e) { 
     // do the thing you want to do here. 
    } 
} 

そして、あなたがJButton作成するとき:

JButton b = new JButton(); 
// configure your button here... 
b.addActionListener(Client.getInstance()); 

をそれはそれと同じくらい簡単です。

ボタンを押したときにUIや内容を変更したい場合はどうすればよいですか?

別のアクションリスナーを追加するだけです!

まず、GUIクラスのメソッドを作成し、ボタンが押されたときにUIでやりたいものは何でも書く:その後

public void actionPerformed(ActionEvent e) { 
    // do stuff 
} 

、GUIクラスはActionListenerを実装します。

b.addActionListener(this); 
+0

これは本当にありがとうございます。正確に私が必要としたもの。 –

関連する問題