2017-03-17 3 views
-2

私は学校プロジェクトに取り組んでいます。私はnetbeans IDEを使用しています。このプロジェクトでは、私のプログラムは、同じコードを使用していますが、異なる名前のボタンをたくさん持っています。毎回変数名を再入力するのではなく、ボタン自体の名前を呼び出す方法はありますか?Jbuttonの変数名を呼び出す方法

sa1++; 
    if(sa1 % 2 == 0) { 
     A1.setEnabled(true); 
     A1.setBackground(Color.green); 
     A1.setOpaque(false); 
    } 
    else { 
     A1.setEnabled(false); 
     A1.setBackground(Color.red); 
     A1.setOpaque(true); 
    } 

ボタンはアルファベット順に、最大5代わりに再入力して、それが好きで持ってする方法があるのに下ることに注意してください:

[JButtonの変数名]が.setEnabled(真の);

時間がかかりません。

私の先生はこのことについても興味があり、 であり、将来のプロジェクトにも役立ちます。 編集:教師はそれを行う方法を知っている、私は彼が私がそれを理解する方法を見たいと思っていたことを意味した。あなたたちは少し厳しいですよね?

+3

らしいです新しい教師と一緒に – csmckelvey

+0

どのような研究をしましたか?教師がこれを解決する方法を知らないという事実は、すべての問題に対する答えが基本的な訓練を通じてJavaの基本的な理解で解決されるので、非常に心配しなければなりません。 – Underbalanced

+0

雷電、私たちはいい人です:)。とにかく、間違った方法で書いただけです。しかし、問題を編集したことですべてが今や理にかなっています。うまくいけば、答えがあなたを助けます。 javaへのあなたの旅で幸運。 :)。 –

答えて

2

アレイのボタンを入れ:

//change the 5 to however many buttons you want to have 
JButton[] buttons = new JButton[5]; 

を、それらを初期化する:

buttons[0] = new JButton(); 
//add any other initialization, like event handlers 

次に、このようにそれらをループ:

以下、他の良い答えでこれを組み合わせる
for (int i = 0; i < buttons.length; i++) { 
    //replace the line below with whatever you want to do with each button 
    performSomeAction(buttons[i]); 
} 

、あなたも、あなたがボタンに何をしたいすべてのものをカプセル化するための方法を行うことができます。今すぐ行うための最善のことは、新しいクラスを見つけることであるよう

private void performSomeAction(JButton button) { 
    if(sa1 % 2 == 0) { 
     button.setEnabled(true); 
     button.setBackground(Color.green); 
     button.setOpaque(false); 
    } 
    else { 
     button.setEnabled(false); 
     button.setBackground(Color.red); 
     button.setOpaque(true); 
    } 
} 
0

Listに追加してforeachループを実行します。

1

このプロジェクトでは、私のプログラムには同じコード( )を使用していますが、名前は異なります。毎回変数名 を再入力する代わりに、ボタン自体の名前を呼び出す方法はありますか?

これをメソッドにリファクタリングします。

例:

public void TestMethod(JButton button) 
    if(sa1 % 2 == 0) { 
     button.setEnabled(true); 
     button.setBackground(Color.green); 
     button.setOpaque(false); 
    } 
    else { 
     button.setEnabled(false); 
     button.setBackground(Color.red); 
     button.setOpaque(true); 
    } 
} 

そして、単にたびにメソッドを呼び出して、適切なボタン参照を渡します。

例:

TestMethod(A1); 
TestMethod(A2); 
TestMethod(A3); 
TestMethod(A4); 
関連する問題