0

私は最初の (非常に基本的な) Java アプリを開発しています。ユーザー情報の保存に問題があります。具体的には、テキストフィールドからのユーザー入力を JComboBox 選択に追加します。どうすればいいですか?今のところ私は持っています:

String comps[] = {Computer 1, Computer 2, Computer 3}; //array for JComboBox
jcbb = new JComboBox<String>(comps); //create JComboBox

if (ae.getActionCommand().equals("Save")) { //user hits the Save button

        StringBuilder sb = new StringBuilder(); //string to hold data
        sb.append((String) macTF.getText()); //get data from textfield
        sb.append(" ");
        sb.append((String) jcbb.getSelectedItem()); //get JComboBox item
        sb.append(" ");
        //***what to do with the held data?***
    }

私は多くのことを見逃していることを知っていますが、正しい方向に微調整するだけで役に立ちます。私は本や Web を検索して、非常に多くの異なる答えを見つけましたが、それらを適用することはできません. StringBuilder をテキストファイルに出力して読み込むのですか?または、両方のデータセットを使用して配列を作成しますか? それともまったく違うもの?

助けてくれてありがとう。

4

2 に答える 2

0

addItem次のメソッド(doc)を使用できます。

if (ae.getActionCommand().equals("Save")) { //user hits the Save button
    String toAdd = (String) macTF.getText(); //get data from textfield
    jcbb.addItem(toAdd); //add String to the combo box
}

さらに、ここで問題が発生します。

String comps[] = {Computer 1, Computer 2, Computer 3}; //array for JComboBox
jcbb = new JComboBox<String>(comps); //create JComboBox

それは次のようになります。

String comps[] = {"Computer 1", "Computer 2", "Computer 3"}; //array for JComboBox
jcbb = new JComboBox(comps); //create JComboBox
于 2012-04-19T20:39:03.287 に答える
0

したがって、考えられる解決策は次のとおりですが、要素の追加/削除および選択の変更により多くのイベントが生成されるという欠点があります。しかし、それはあなたが探している行動です

public <E> void replaceComboBoxItem( JComboBox<E> combo, E itemToReplace, E replacement ){
   boolean selected = combo.getSelectedItem() == itemToReplace;
   combo.insertItemAt( replacement, indexOf( combo, itemToReplace ) );
   combo.removeItem( itemToReplace );
   if ( selected ){
      combo.setSelectedItem( itemToReplace );
   }
}
private <E> int indexOf( JComboBox<E> combo, E item ){
  for( int i =0; i < combo.getItemCount(); i++ ){
    if ( combo.getItemAt( i ).equals( item ) ){
       return i;
    }
  }
  return -1;
}

そして、あなたは使用することができます

replaceComboBoxItem( jcbb, jcbb.getSelectedItem(), sb.toString() );

注:コードはここに入力しただけで、小さな構文エラーが含まれている可能性があります

于 2012-04-19T20:44:11.603 に答える