2010-12-08 11 views
0

アクションリスナーの内部でこれを行う方法については誰でも知っていますか?私は、次のアプレットの値を返しますか?

private void (java.awt.event.ItemEvent evt) {             
    if (studentComboBox.getSelectedItem().equals("Student 1")){ 


jlabel1=return parameter ="i" 



String i = getParameter("student2"); 

しかし、リターン・パラメータは

+0

あなたの質問は不明です。プラスあなたは正しい大文字を使用していません。 – jzd

+0

あなたのコードと質問はまだ理にかなっていません。最後の3行は何ですか?あなたは3つのパラメータまたは1を取得しようとしていますか? – jzd

答えて

0

したがって、ユーザーがstudentComboBoxで別の値を選択した場合は、jlabel1のテキストを変更しますか?もしそうなら、これはそれを行う必要があります:studentComboBoxItemStateChangedは何かを返す必要がないことを

String h = getParameter("student1"); 
String i = getParameter("student2"); 
String j = getParameter("student3"); 

private void studentComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {             
    if (studentComboBox.getSelectedItem().equals("Student 1")){ 
     jlabel1.setText(h); 
    } else if (studentComboBox.getSelectedItem().equals("Student 2")){ 
     jlabel1.setText(i); 
    } else if (studentComboBox.getSelectedItem().equals("Student 3")){ 
     jlabel1.setText(j); 
    } 
} 

お知らせ。単にjlabel1オブジェクトのメソッドを呼び出すだけです。

1

リターンはあなたが返すように値を指定することができますを修正していないイム確認を持っています。あなたに割り当てをすることは許されません。どのように行動するかを決めるためにあなたのメソッドを呼び出すコードまでです。

いずれの場合でも、メソッドstudentComboBoxItemStateChangedvoidメソッドです。つまり、値を返すことはできません(通常returnが機能します)。

これはあなた次第で、必要なものです。あなたの場合の最良の解決策は、おそらくいくつかの変数を設定するか、ifのそれぞれのパラメータで関数を呼び出すことです。

EDITあなたは"h"にjLabel1をの値を設定しようとしている場合は、"i""j"

if (studentComboBox.getSelectedItem().equals("Student 1")) { jlabel1.setValue("h"); } 
.... 

しかし、あなたは変数hiを使用しようとしているように見える、とj"h"hとは異なります。

if (studentComboBox.getSelectedItem().equals("Student 1")) { jlabel1.setValue(h); } 
.... 

しかしih、ということを行うには、とjは法の外に、インスタンス変数として定義する必要があります。他の誰かに述べたよう

if (studentComboBox.getSelectedItem().equals("Student 1")) { jlabel1.setValue(getParameter("student1")); } 
.... 

、マップは次のようになります。

この場合最高ソリューションは、ラベルと仮定すると、ちょうどそれを行うことですのgetParameter(「STUDENT1」)の値を保持する必要があります非常にあなたがするJComboBoxで選択した項目に基づいて変数を設定しようとしているように見えます。この

Map<String, String> prettyNamesToParameterNames= ...; 

private void StudentComboBoxItemStateChanged(java.awt.event.ItemEvent evt) { 
    String paramName=prettyNamestoParameterNames.get(studentComboBox.getSelectedItem()); 
    label1.setValue(getParameter(paramName)); 
} 
0

に適してい。あなたの構文が間違っていることを確認するには、returnキーワードを使用する必要はありません。必要な変数を設定するだけです。

値を返す必要がある場合は、返す値を返し、メソッドのシグネチャを変更して戻り値の型を指定します。

最後に、面倒なif/elseステートメントのセットを使用する代わりに、Mapを使用します。後で変更する方がはるかに明確で、はるかに効率的で、はるかに簡単です。また、あなたのコードアカウントはnullが選択されていますか?

関連する問題