2016-07-04 12 views
0

私はこのような文字列配列を持って、変数参照として文字列値を取得できますか? (変数名)

String[] components = {"jButton1,jLabel1,jTextField1"}; 

私は

components[0].setText("Some Text"); 

が、私は変数名として文字列値を使用でき、このように、この変数の文字列名を使用したいですか?このすべての変数宣言は私のコードにあります。

+2

なぜ 'jButton1.setText()'の代わりに 'components [0] .setText()'を書くのですか? – Kayaman

+2

あなたは、反射を介して行うことができます。しかし、配列内のコンポーネントへの実際の参照を格納するだけではどうですか? –

+2

または地図。 'map.put( 'jButton1'、jButton1)'、次に 'map.get(buttonName).setText(" Some text ")'です。 – bezmax

答えて

0

国際化のために行っている間、あなたは変数名を取得するために、あなたはこれを試すことができ、変数名を変更する必要はありませんが:

Class<?> myClass = this.getClass(); 
Field field = myClass.getField("fieldName"); 

if(field instanceof JButton) 
    ((JButton)field).setText("My text"); 

は、このチュートリアルを見て、 http://omtlab.com/java-reflection-tutorial/

を助けるかもしれません
+0

はReflectionと一致しません。たとえばget/putClientProperty – mKorbel

関連する問題