Как я могу скопировать строки из текстового файла в JComboBox? - PullRequest
0 голосов
/ 17 августа 2011

Я пытаюсь скопировать каждую строку текстового файла в jcomboBox, но в jcomboBox отображается только первая строка текстового файла ... Я не понимаю, почему.Не могли бы вы объяснить мне, что не так?

(...)
BufferedReader in;
    String read;

        try {
            in = new BufferedReader(new FileReader("D:/File.txt"));


            read = in.readLine();

            lines[w]=read;

             ++w;

            in.close();
        }catch(IOException e){
            System.out.println("There was a problem:" + e);
        }

    combo1 = new JComboBox(lines);

    combo1.setPreferredSize(new Dimension(100,20));
    combo1.setForeground(Color.blue);


    JPanel top = new JPanel();
    top.add(label);
    top.add(combo1);

    combo1.addActionListener(new ActionFichiers());

    container.add(top, BorderLayout.NORTH);
    this.setContentPane(container);
    this.setVisible(true);            
    }
(...)

Ответы [ 3 ]

5 голосов
/ 17 августа 2011

Это потому, что вы читаете только первую строку и закрываете файл, подумайте:

     try {
        in = new BufferedReader(new FileReader("D:/File.txt"));
        while((read = in.readLine()) != null){
            lines[w]=read;
           ++w;
        }
        in.close();
    }catch(IOException e){
        System.out.println("There was a problem:" + e);
    }

Примечание: я предполагаю, что массив lines достаточно большой

4 голосов
/ 17 августа 2011

заменить

read = in.readLine();

lines[w]=read;

на

while((read = in.readLine())!=null){
    lines[w++]=read;
}
4 голосов
/ 17 августа 2011

Вы читаете только первую строку файла. Так что не может быть больше в JCombobox. Вы должны использовать некоторое время и читать все строки, пока не дойдете до конца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...