アプリ版:「スタンプのみでお礼する」機能のリリースについて

Choiceで選択した項目をテキストフィールドに表示させたいのですが、文字列の取得ができないようです。
お助け下さい。よろしくお願い致します。(;_;)

import java.awt.*;
import java.awt.event.*;

public class ChoiceTest extends Frame implements ItemListener{

TextField jt;
Choice ch;
Label titleLabel;
String cData[]={"サッカー","バレーボール","柔道","水泳","バスケット
ボール","野球"};

public static void main(String[] args){

ChoiceTest f=new ChoiceTest();

f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{System.exit(0);}
});
f.setVisible(true);
}
ChoiceTest(){
setTitle("リストメニュー");
setSize(300,200);

titleLabel=new Label("選んでください");

Choice ch=new Choice();
for(int i=0; i<cData.length; i++)
{
ch.addItem(cData[i]);
}
ch.addItemListener(this);


jt=new TextField("ここに表示");

add(titleLabel,BorderLayout.NORTH);
add(ch,BorderLayout.CENTER);
add(jt,BorderLayout.SOUTH);
}
public void itemStateChanged(ItemEvent e)
{

if (e.getItemSelectable() == ch)
{
jt.setText(ch.getSelectedItem());
}

}
}

A 回答 (1件)

こんばんは。


イージーミスのようです。

> Choice ch=new Choice();

コンストラクタ内でもう一度"ch"を宣言してしまっています。
なのでインスタンス変数の"ch"はnull(空)のままです。

ch = new Choice();

とすればうまくいくと思います。
    • good
    • 0
この回答へのお礼

もう一度Choiceクラスを作るとnullになることをはじめて知りました。参考になりました。ありがとうございました。

お礼日時:2004/09/25 11:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!