Заполнить Jtable С Помощью Списка
Как я заполню JTable значениями из списка с типом объекта. Мой код выглядит так :
String[] columnNames = {"CLASS CODE",
"TIME",
"DAY",
"ROOM",
"PROFESSOR"};
List<org.mine.ScheduleAttr> schedule = getStudSched(studNo);
DefaultTableModel model = new DefaultTableModel();
table.setModel(model);
model.setColumnIdentifiers(columnNames);
У меня уже есть столбцы, список будет исходить из переменной расписания ? Как я могу поместить это в свою таблицу, учитывая эти столбцы ?
3 ответов
посмотри DefaultTableModel. Вы можете перебирать свой список и создавать массив объектов для каждой строки.
for (ScheduleAttr s : schedule) {
Object[] o = new Object[5];
o[0] = s.getX();
o[1] = s.getY();
o[2] = s.getZ();
o[3] = s.getA();
o[4] = s.getB();
model.addRow(o);
}
вы можете использовать что-то подобное (просто изменение columns
и values
):
import java.awt.BorderLayout;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class TestJFrame extends JFrame {
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
TestJFrame testJFrame = new TestJFrame();
List<String> columns = new ArrayList<String>();
List<String[]> values = new ArrayList<String[]>();
columns.add("col1");
columns.add("col2");
columns.add("col3");
for (int i = 0; i < 100; i++) {
values.add(new String[] {"val"+i+" col1","val"+i+" col2","val"+i+" col3"});
}
TableModel tableModel = new DefaultTableModel(values.toArray(new Object[][] {}), columns.toArray());
JTable table = new JTable(tableModel);
testJFrame.setLayout(new BorderLayout());
testJFrame.add(new JScrollPane(table), BorderLayout.CENTER);
testJFrame.add(table.getTableHeader(), BorderLayout.NORTH);
testJFrame.setVisible(true);
testJFrame.setSize(200,200);
}
}
на columns
не должен выглядеть как columns.toArray()
потому что у вас уже есть массив объектов, так и просто использовать его. В конце, чтобы использовать ваши столбцы, инструкция выглядит так::
TableModel tableModel = new DefaultTableModel(values.toArray(new Object[][] {}), columnNames);
попробуй такое
сначала сделайте итератор
Iterator itr = StringList.iterator();
while(itr.hasNext()) {
Object element = itr.next();
int y=0;
for (y=0; y <=16 ; y++){
table_4.setValueAt(element, y, 0);
table_4-это ваше имя таблицы, затем установите строку и столбец, в которые вы хотите вставить строку