MyFrame
クラスの変数に問題があります。MyFrame
コンボボックスリスナーで定義された変数の値をクラスに入れたいです。
これが私の状況です。友達の名前が入ったコンボボックスがあります。選択した友人の姓を返さなければならないコンボボックスにリスナーを配置しました。surname
クラスのコマンドにの値を挿入したいのですがMyFrame
、いくつか問題があります。一度設定するsurname
とfinal
(リスナーで使用する必要があるため)、次のようなエラーが発生します。
The final local variable surname cannot be assigned, since it is defined in an enclosing type
.
問題は何ですか?ここに私のコードを投稿します:
public class MyFrame extends {
public static void main (String[] args)
{
//other
String [] names = {"john","al","jack"};
final String surname=null;
JLabel nameLbl = new JLabel("surname: " + surname);
JComboBox box = new JComboBox(names);
JPanel centralPnl = new JPanel();
centralPnl.add(nameLbl);
centralPnl.add(box);
box.addItemListener(new ItemListener()
{
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED)
{
// Here operations from database
//that return friends' surname under the variable name of "result"
surname = result;
}
}
});
}
}