单击按钮后,swing java将数据传递到JTable的行
我正在做一个java应用程序,它必须将一个初始化的字符串数组作为行显示给JTable
这就是我所尝试的:
Object[] _row1;
public PrintMeNow() {
table = new JTable();
table.setBounds(16, 203, 362, 16);
table.setShowHorizontalLines(true);
table.setShowVerticalLines(true);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setModel(new DefaultTableModel(
new Object[][] {
_row1, {2,2,2}, {3,3,3}, {4,4,4}
},
new String[] {
"QTY", "Item Code", "Amount"
}
));
}
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
_row1 = new Object[]{"DN Korina", "DN Madrid", "DN Romania"};
}
});
但当我按下开始按钮时,它并没有填满这一行。我在这里做错了什么?非常感谢你的帮助。谢谢
# 1 楼答案
您需要做的是将一行添加到
Model
。像这样的最简单的方法是将模型设置为没有行
然后,无论要添加什么行,只需添加到模型中即可
更新示例
解释
Stack
。它甚至可以是像数组一样的任何数据结构,但我选择使用Stack
,因为我可以.pop()
它。然后得到Integer[]
李>Stack
。请记住Stack
包含Integer[]
的model
添加一个一维数组李>Integer[]
就会从Stack
中拉出,然后我就把这个数组作为一行添加到model
李># 2 楼答案
您在
ActionListener
内的代码缺少任何到addRow
到JTable
或到DefaultTableModel
(table.getModel....
)的代码。在您使用
DefaultTableModel
的情况下,行是添加到JTable
还是DefaultTableModel
不要在Swing中使用
NullLayout
,Swing被指定为使用LayoutManager