Вставить данные в JTable? - PullRequest
       24

Вставить данные в JTable?

0 голосов
/ 05 декабря 2010

Я использую среду IDE NetBeans, которая поставляется с очень удобным инструментом создания GUI, но столкнулась с проблемой.

Приложение, которое я создаю, сначала запрашивает источник данных и получает эти данные обратно в виде массива строк. Как мне вставить эти данные в jtable, который я поместил в свое окно с помощью создателя графического интерфейса.

Я не полный новичок в Java, поэтому я знаю о коде этого графического интерфейса и раньше занимался программированием свинга.

Например, допустим, у меня есть два массива строк:

String[] tableA_01 = {"Column01","Column02","Column03","Column04"};
String[] tableA_02 = {"Data01","Data02","Data03","Data04"};

Как бы я вставил значения первого массива в первый столбец, а затем значения второго массива во второй столбец, я раньше не использовал компонент JTable в колебании, поэтому не знаю точно.

Любая помощь будет высоко ценится,

Ответы [ 4 ]

3 голосов
/ 19 августа 2012

Вы все делаете неправильно, приятель, в Jtable's defaultTableModel вы можете очень легко добавлять данные.например,

DefaultTableModel table = (DefaultTableModel) <some JTable>.getModle();
table.addRow{"<column1 value>","<column2 value>"};// maybe even more columns

, поэтому из ваших двух массивов, т.е.

String[] tableA_01 = {"Column01","Column02","Column03","Column04"};
String[] tableA_02 = {"Data01","Data02","Data03","Data04"};

, сделать массивы вроде

String[] row1 = {"Column01","Data01"};
String[] row2 = {"Column02","Data02"};
String[] row3 = {"Column03","Data03"};
String[] row4 = {"Column04","Data04"};

выглядит утомительно, но вы можете поместить это в цикл и обновитьиспользуя

table.addRow(row1);
0 голосов
/ 05 декабря 2010

Если вы уже занимались программированием на Swing, вы должны знать, что компоненты GUI поддерживаются отдельными классами моделей.Для простых компонентов, таких как текстовые поля, вы можете обойтись без особых проблем, но для таблицы вам придется иметь дело с TableModel.Вы можете использовать DefaultTableModel напрямую - в нем даже есть конструктор, который принимает двумерный массив.

0 голосов
/ 05 декабря 2010

Ну, я сомневаюсь, что вы использовали бы их в качестве данных для столбцов. Вместо этого похоже, что первый массив будет «заголовочными» значениями для 4 столбцов, а затем второй массив будет «данными» для этих 4 столбцов.

Ваш код будет выглядеть примерно так:

DefaultTableModel model = new DefaultTableModel( tablea_01, tableA_02);
JTable table = new JTable( model );

Прочтите JTable API и перейдите по ссылке на учебник Swing в разделе «Как использовать таблицы» для получения дополнительной информации и рабочих примеров.

0 голосов
/ 05 декабря 2010

Данные не попадают в JTable напрямую; вместо этого он входит в TableModel. Вы можете использовать DefaultTableModel или создать собственную реализацию.

Довольно просто подкласс AbstractTableModel, если DefaultTableModel не делает то, что вы хотите.

...