-1

我将在 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 中的所有值都应该自动打印到 table。由于 columnsNames 和 rows 中的这些值在前面的程序中存储在两个不同的数组中,我使用了 for 循环并尝试将数组的值传递给 table。Array1 存储“N1...N4”,array2 存储“1 到 8”。而对于rows的值,应该是逐行添加到表中,而不是逐行添加。有没有办法做到这一点,请帮忙。

4

1 回答 1

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);

但是由您来管理模型以确保您要更新的单元格已经存在于模型中。您不能一次只添加一个单元格。

然后你可以更新个人

于 2013-07-22T14:54:01.337 回答