我将在java GUI中创建一个表,我在下面找到了示例:
String[] columnNames = {"First Name",
"Last Name",
"Sport",
"# of Years",
"Vegetarian"};
Object[][] rows = {
{"Kathy", "Smith",
"Snowboarding", new Integer(5), new Boolean(false)},
{"John", "Doe",
"Rowing", new Integer(3), new Boolean(true)},
{"Sue", "Black",
"Knitting", new Integer(2), new Boolean(false)},
{"Jane", "White",
"Speed reading", new Integer(20), new Boolean(true)},
{"Joe", "Brown",
"Pool", new Integer(10), new Boolean(false)}
};
final JTable table = new JTable(rows, columnNames);
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
这是GUI中的简单Jtable,它显示了如何使用所有设置值添加列和行,但我想要做的是自动打印collumnNames和每一行的值。 例如,我有
String[] columnNames = {"N1","N2","N3","N4"};
Object[][] rows = {{"1", "2","3", "4"},{"5", "6","7", "8"},
columnNames和rows中的所有值都应自动打印到表中。因为columnsNames和rows中的这些值存储在前面程序中的两个不同的数组中,所以我使用for循环并尝试将数组的值传递给桌子。 Array1存储“N1 ... N4”,array2存储“1到8”。对于行的值,它们应该逐个添加到表中,而不是逐行添加。 有没有办法做到这一点请帮忙。
答案 0 :(得分:0)
如果要动态添加数据行,请不要使用数组作为数据。而是使用DefaultTableModel。代码类似于:
String[] columnNames = {"N1","N2","N3","N4"};
DefaultTableModel model = new DefaultTableModel(columnName, 0);
JTable table = new JTable( model );
然后,当您想要添加数据行时,您可以这样做:
model.addRow( new String[] {"1", "2", "3", "4"} );
编辑:
如何逐个添加每行中的每个数据而不是添加包含所有四个值的整行?
这不是表的工作方式。表是基于行的。如果需要,可以添加空行。
model.setRowCount( model.getRowCount() + 1 );
然后您可以使用以下方式单独更新单元格:
model.setValueAt("???", row, column);
但是由您来管理模型以确保您要更新的单元格已存在于模型中。你不能一次只添加一个单元格。
然后你可以更新个人