0

オブジェクトが変更されたら、いくつかのカスタムミューテーターをクラスに呼び出したいと思うSwing GUIの小さなフォームがありますが、その情報を取得してミューテーターを呼び出す方法がわかりません。関連するコードは次のとおりです。これは比較的単純ですが、理解できません。

namebox のコンテンツが変更または失われた場合のリファレンスは、.setName(String x) を呼び出す必要があります。genderbox のコンテンツが変更または失われた場合は、.setGender(Boolean x) を呼び出す必要があります。 Racebox と同様にフォーム クラスボックスの関数を構築するために使用される配列のインデックス番号

更新:必要なもののいくつかを見つけました。アイテムのラベルが必要で、getsourceとgetActioCommandを使用しましたが、ほとんどの側面で機能するはずですが、Genderboxが文字列を格納する小さな問題がまだありますが、intが必要です値と文字列のみを表示する aj コンボ ボックスで値と表示オプション テキストを別々に設定する方法はありますか?

    JTextField namebox = new JTextField(nala.getName());
    namebox.addFocusListener(new FocusListener() {

    //Create the combo box for gender.
    String[] gender = { "male", "female" };
    JComboBox genderBox = new JComboBox(gender);
    if (nala.getGender()){genderBox.setSelectedIndex(1);}else{genderBox.setSelectedIndex(0);}
    genderBox.addActionListener(this);
    genderBox.setActionCommand("GenderBox");

    //Create the combo box for race.
    String[] cRace = new String[75];
    for (int i=0; i<75; i++){cRace[i] = nala.getRaceName(i);}
    JComboBox raceBox = new JComboBox(cRace);
    raceBox.setSelectedIndex((int)nala.getRace());
    raceBox.addActionListener(this);

    //Create the combo box for class.
    String[] cClass = new String[50];
    for (int i=0; i<50; i++){cClass[i] = nala.getClassName(i);}
    JComboBox classBox = new JComboBox(cClass);
    classBox.setSelectedIndex((int)nala.getRace());
    classBox.addActionListener(this);

    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("GenderBox")){
            JComboBox cb = (JComboBox)e.getSource();
            System.out.println(cb.getSelectedItem().toString());
        }
         JLabel label = new JLabel(setStatsInfo());
    }//actionPerformed(ActionEvent e)
4

1 に答える 1

2

JComboBox で選択の変更がある場合は、ItemListenerを使用します。

例:

JComboBox combo = new JComboBox();
combo.addItemListener(new ItemListener() {
  @Override
  public void itemStateChanged(ItemEvent arg0) {
  // TODO: Action.
  }
});

あなたのコードはlisteners、問題の手がかりを与える の追加のみを示しています。ActionEventメソッドコードを投稿して、問題を示してください。

于 2013-01-26T03:39:02.663 に答える