2017-08-28 8 views
0

J'ai fichier texte comme celui-ci:Java - Comment remplir combobox avec certaine partie du fichier txt

Jordan|Turner|jotu|12345|Department of Complaints|Belgrade| 
    Travis|Bickle|trabic|54321|Driving Department|Novi Sad| 

et le code comme ceci:

package gui; 
    public class ReservationWindow extends JFrame { 

     private JComboBox cbDispatcher; 
     private JLabel lblDispatcherecer; 

     public ReservationWindow() { 
      setTitle("Reservations"); 
      ImageIcon ikonica = new ImageIcon 
        (LoginProzor.class.getResource("/ikonice/faketaxi.png")); 
      setIconImage(ikonica.getImage()); 
      setSize(400, 350); 
      setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
      setLocationRelativeTo(null); 
      setResizable(false); 
      initGUI(); 
      initActions(); 
     } 

     private void initActions() { 
//here is everything fine :D 
     } 

     private void initGUI() { 
      MigLayout mig = new MigLayout("wrap 2", "[][]", "[]10[][]10[]"); 
      setLayout(mig); 

      cbDispatcher = new JComboBox(); 
      lblDispatcher = new JLabel("Dispatcher with whom you talked"); 

      add(lblDispatcher); 
      add(cbDispatcher); 

     } 
    } 

Maintenant, comment remplir ComboBox avec certaine partie de la linse? (dans ce cas, avec 4e partie - Département des plaintes et de la conduite)

enter image description here

+0

lire ce fichier puis diviser la chaîne par '|' pour obtenir le tableau puis ajouter des valeurs respectées dans 'jComboBox' en utilisant la méthode' addItem() ' – Amogh

+0

@Amogh Oui, je comprends la logique, et j'essaie de lire le fichier avec BufferReader etc, et essayé de tant de façons, mais je ne suis pas sûr de savoir comment lire et diviser le fichier dans le bon sens .. –

+0

@Amogh 1.8.0_91 –

Répondre

-1

Parse et stocker votre fichier texte à ArrayList. Vous pouvez utiliser la méthode split de String. Ensuite, utilisez la méthode toArray() de la classe ArrayList et passer dans le constructeur de la JComboBox

Voir la JavaDoc et tutorial pour plus d'informations.

2

Si vous utilisez | dans le fichier juste pour le séparateur alors je vous suggère enlever cela et garder chaque valeur sur chaque nouvelle ligne pour simplifier, java 8 façon simple de lire le fichier est:

List<String> list = new ArrayList<>(); 

try (Stream<String> stream = Files.lines(Paths.get(fileName))) { 

    list = stream.collect(Collectors.toList()); 

    } catch (IOException e) { 
     e.printStackTrace(); 
} 

Alors maintenant list aura toutes les valeurs du fichier. Maintenant, vous devez boucler dessus et l'ajouter à JComboBox en utilisant cbDispatcher.addItem(value). Vous pouvez utiliser stream.filter pour filtrer (lire la partie spécifique du fichier) et la donner à JComboBox