2017-12-08 2 views
1

파일에서 읽고 특정 문자열을 jcombobox에 추가했지만 한 번만 필요합니다. 나는 이런 식으로 뭔가를 시도 : (심지어 포함되어 있음)하지만, 아직도 내가 gyarto_cmb에 대한 선언이 표시되지 않는 두 번파일에서 읽을 때 콤보 상자에 두 번 항목을 추가합니다.

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 lines @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()을 시도해보십시오. 복제본에 공백이있을 수 있습니다. 콤보 상자에 문자열이 이미있는 경우 문자열을 추가하지 않기 때문에 해결해야합니다. –

관련 문제