2017-12-08 11 views
1

ファイルから読み込み、特定のStringをjcomboboxに追加しますが、一度だけ必要です。私はこのような何かを試してみました。(でも含まれていると)、それはまだ私がgyarto_cmbの宣言が表示されていない二回ファイルから読み込む場合、コンボボックスに項目を2回追加します

public void beolvas() { 
    gyarto_cmb.removeAllItems(); 
    try { 
     BufferedReader be = null; 

     be = new BufferedReader(new FileReader("F:\\telefonok.txt")); 
     String sor = null; 
     while ((sor = be.readLine()) != null) { 
      StringTokenizer felbont = new StringTokenizer(sor, ";"); 
      String gyarto_meg = felbont.nextToken(); 

      String tel_tip = felbont.nextToken(); 
      double kijel_meret = (double) Double.parseDouble(felbont.nextToken()); 
      String kijel_felbontas = felbont.nextToken(); 

      int tarhely_merete = (int) Integer.parseInt(felbont.nextToken()); 
      int akkumulator_kap = (int) Integer.parseInt(felbont.nextToken()); 
      int telefon_ara = (int) Integer.parseInt(felbont.nextToken()); 

      Gyarto gyart_1 = new Gyarto(); 

      gyart_1.megnevezes = gyarto_meg; 
      Tipus tipus1 = new Tipus(tel_tip, kijel_meret, kijel_felbontas, tarhely_merete, akkumulator_kap, 
        telefon_ara); 
      gyart_1.tipuska.add(tipus1); 

      telefonok.add(gyart_1); 

      if (telefonok.indexOf(gyarto_meg) == -1) { 
       gyarto_cmb.addItem(gyarto_meg); 
      } 

     } 
    } catch (Exception ex) { 
     System.out.println("Error:" + ex.toString()); 
    } 
} 
+0

ファイルにはいくつの行がありますか。 – Santosh

+0

10行@Santosh –

+0

jcombobox、https://stackoverflow.com/questions/8899051/checking-if-an-item-already-exists-in-a-jcomboboxに存在するアイテムを見つける方法を確認してください – Santosh

答えて

0

要素を持っているので、私は方法がありますかわかりません

Set<String> added = new HashSet<String>(); 

while((sor=be.readLine())!=null){ 
    ... 

    if(!added.contains(gyarto_meg)) { 
     added.add(gyarto_meg); 
     gyarto_cmb.addItem(gyarto_meg); 
    } 
} 
+0

これはありますか問題を解決する?もしそうなら、なぜですか? – Zabuza

+0

これも同様に試しましたが、うまくいきません –

+0

本当ですか? String.trim()を試してください。重複している部分に空白があるかもしれません。コンボボックスに文字列が追加されていないため、コンボボックスに文字列が追加されないため、解決するはずです。 –

関連する問題