Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java: GUI, Графика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
rviktoria
1 / 1 / 1
Регистрация: 05.03.2013
Сообщений: 41
1

JFrame, JTable. Чтение из текстового файла

24.04.2013, 04:40. Просмотров 2530. Ответов 2
Метки нет (Все метки)

Есть текстовый файл, в котором содержится информация о человеке: Имя, Фамилия, Возраст, Пол.

В таком виде:
Ivan,Ivanov,20,Male
Olga,Sidorova,43,Female
Elena,Kameneva,40,Female
Petr,Petrov,54,Male

Необходимо вывести данные в виде таблицы, используя JFrame и JTable.
У меня есть такой код:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class Person {
    
    private String name;
    private String surname;
    private int age;
    private String gender;    
    
    public Person(String name, String surname, int age, String gender) //Параметры: имя, фамилия, возраст, пол
    {
        this.name = name;
        this.surname = surname;
        this.age = age;        
        this.gender = gender; 
    }
 
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    
    public String getSurname() { return surname; }
    public void setSurname(String surname) { this.surname = surname; }
    
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
    
    public String getGender() { return gender; }
    public void setGender(String gender) { this.gender = gender; }
}
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
 
public class PersonJFrame extends JFrame
{
    private JScrollPane scrollPane;
    private JTable table;
 
    public PersonJFrame(String title) throws FileNotFoundException, IOException
    {  
        super(title);    
        setSize(400, 200);
        setVisible(true);
    
        table = new JTable();
        scrollPane = new JScrollPane(table);
        getContentPane().add(scrollPane, BorderLayout.CENTER);
 
        ArrayList<Person> personlist = FileLoading();
        table.setModel(new PersonTable(personlist));
    }
    
    public static ArrayList<Person> FileLoading() throws FileNotFoundException, IOException
    {
        ArrayList<Person> personinfo = new ArrayList();
        BufferedReader file = new BufferedReader(new FileReader("c://People.txt")); 
        {
            String line;            
            while((line = file.readLine()) != null)
            {
                String[] temp = line.split(",");
                personinfo.add(new Person(temp[0], temp[1], Integer.parseInt(temp[2]), temp[3]));
            }
        }
        
        return personinfo;
    }
}
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
 
public class PersonTable extends AbstractTableModel
{
    private final String[] headers = {"Name", "Surname", "Age", "Gender"};
    private final ArrayList<Person> person;
 
    public PersonTable(ArrayList<Person> person)
    { this.person = person; }
 
    @Override
    public int getColumnCount()
    { return headers.length; }
 
    @Override
    public String getColumnName(int header)
    { return headers[header]; } 
 
    @Override
    public int getRowCount()
    { return person.size(); }
 
    @Override
    public Object getValueAt(int row, int column)
    {       
        Person p = person.get(row);
        if(column==0){ return p.getName(); } 
        else if(column ==1) { return p.getSurname(); } 
        else if(column ==2) { return p.getAge(); }
        else if(column ==3) { return p.getGender(); }
        else { return null; }
    }   
}
T-SQL
1
2
3
4
5
6
7
8
9
10
import java.io.FileNotFoundException;
import java.io.IOException;
 
public class Main {
    
    public static void main(String[] arg) throws FileNotFoundException, IOException
    {
        PersonJFrame frame = new PersonJFrame("People");
    } 
}
При запуске открывается пустое окно.
Выдаёт ошибки:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at PersonJFrame.FileLoading(PersonJFrame.java:41)
at PersonJFrame.<init>(PersonJFrame.java:28)
at Main.main(Main.java:8)


Не могу понять, какая ошибка в 28 строке класса PersonJFrame?
Подскажите, пожалуйста, как можно решить данную проблему!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2013, 04:40
Ответы с готовыми решениями:

Как перерисовывать JTable при появлении JFrame
Доброго времени суток. подскажите пожалуйста какой слушатель событий отслеживает вызов у окна...

Как правильно обновить таблицу jtable из другого jframe
Добрый день, проблема такая, у меня есть jframe package Forms; import javax.swing.*; import...

Чтение матриц из текстового файла
Добрый день! подскажите пожалуйста как считать матрицы из текстового файла 3 2 2 3 1 0 0 ...

Как заменить чтение строки из консоли на чтение текстового файла?
основное задание: найти частоту суффикса (например, &quot;ing&quot;) в текстовом документе. в...

Чтение из одного текстового файла и копирование на другой текстового файл с заменой пробелов на "_"
Здравствуйте, помогите пожалуйста с паскалем. Надо прочитать текстовый файл (в нем строки с именами...

2
Taftis
Pascal, Delphi, C++
215 / 128 / 91
Регистрация: 01.12.2012
Сообщений: 628
24.04.2013, 07:56 2
выход за границы массива
а в 28 файл не загрузился
0
rviktoria
1 / 1 / 1
Регистрация: 05.03.2013
Сообщений: 41
24.04.2013, 13:17  [ТС] 3
Вопрос решён! Тема закрыта.

Немного переписала метод FileLoading() в классе PersonJFrame, теперь всё работает.
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static ArrayList<Person> FileLoading() throws FileNotFoundException, IOException
    {
        ArrayList<Person> personinfo = new ArrayList();
        BufferedReader file = new BufferedReader(new FileReader("c://People.txt")); 
        {
            String line = file.readLine();
            String[] temp = line.split(",");
 
            while((line = file.readLine()) != null)
            {
                temp = line.split(",");
                personinfo.add(new Person(temp[0], temp[1], Integer.parseInt(temp[2]), temp[3]));
            }
        }        
        return personinfo;
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2013, 13:17

Чтение из одного текстового файла и копирование на другой текстового файл с заменой пробелов на "_"
Здравствуйте, помогите пожалуйста с паскалем. Надо прочитать текстовый файл (в нем строки с именами...

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла.
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;locale.h&gt; #include&lt;iomanip&gt; #include &lt;cstdlib&gt;...

как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла?
Друзья! Создадим два текстовых файла, f_0.txt и f_1.txt и что-нибудь в них запизаем, например в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru