2017-04-10 6 views
-1

特定のコマンド文字列に関連付けられたボタンを取得する方法はありますか?例えば 私はボタンを定義する場合:Java ActionCommand

その文字列「unique_toggle」を有する
button.setActionCommand("unique_toggle"); 

、それは別のクラスから、そのボタンを取得することは可能でしょうか?私はJavaで初心者です。この質問があなたには分かりそうに見えるかもしれません。

+2

アクションリスナーを「その他のクラス」とします。実行されたアクションでは、['EventObject.getSource()'](http://docs.oracle.com/javase/8/docs/api/java/util/EventObject.html#getSource--)を使用してください。 [XY問題とは何ですか?](http://meta.stackexchange.com/q/66377)も同様です。 –

+0

間違いなくそれを試してみますか、 – Alien13

+0

EventObject.getSource()は私の問題を解決しますか?私は決してそのボタンを押さないから。私はそのボタンsetActionCommandが参照している文字列しか持っていません。 – Alien13

答えて

0

はい、あなたはボタンとそれに関連するボタンのコマンドにアクセスできます。ボタンのコマンドが必要な場合は、おそらく、であり、達成するためには非常に汚い方法であるため、このアプローチはではないため、プログラマーの再設計を検討する必要があります。

それはあなたの質問に答えるためになると、

Foo1があなたのGUIクラスであると言うことができます。

class Foo1{ 

JButton button; 

public Foo1(Foo2 otherClass) 
{ 
button = new JButton(); 
otherClass.setButtonAddress(button); 
} 
..... other methods 
} 

Foo2は、ボタンのコマンドテキストにアクセスするクラスです。

class Foo2{ 
JButton buttonFromOtherClass; 

//This is the method, in where you need command string of the button 

private void getCommandsString() 
{ 
Foo1 foo1 = new Foo1(this); 

//After the initialization of Foo1, you can get every information of the button 
    String actionCommand = buttonFromOtherClass.getActionCommand(); 
} 


public void setButtonAddress(JButton button) 
{ 
buttonFromOtherClass = button; 
} 

} 
関連する問題