我们说我有一个People
数组。这些人有很多领域,如姓名,职位,职称,薪水。
我发现大多数问题都是关于填充JTable
2D阵列,除非我错了,否则不是我想要做的。< / p>
我希望能够点击一个按钮,让JTable
查看人数组并显示该表。
谢谢!
编辑:我希望能够在这里更改setModel参数以使用特定值进行更新。
JButton btnRefresh = new JButton("Refresh");
btnRefresh.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
table_1.setModel(new DefaultTableModel(new Object[][] {}, new String[] {
"#", "Song", "Artist", "Time" }));
table_1.getColumnModel().getColumn(0).setPreferredWidth(22);
table_1.getColumnModel().getColumn(1).setPreferredWidth(191);
table_1.getColumnModel().getColumn(2).setPreferredWidth(179);
panel_3.revalidate();
}
});
我可以通过更改这些字符串值来更改列标题但是我可以将new Object[][]{}
更改为?
答案 0 :(得分:0)
这段代码完全符合我的需要。
JButton btnRefresh = new JButton("Refresh");
btnRefresh.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
table.setModel(new DefaultTableModel(dataArray(),
new String[] { "first", "second", "third", "fourth" }));//Changes the column headers
panel.revalidate();
}
private Object[][] dataArray() {
Object[][] table = new Object[5][4];//5 = rows 4 = columns
for (int i = 0; i < 5; i++) {
for(int j = 0; j< 4; j++){
if(j == 0){
table[i][j] = i+1;
}else if(j== 1){
table[i][j] = "Second Row";//Change these strings to whatever variable you want to fill the second row with, same with the other 3.
}else if(j== 2){
table[i][j] = "Third Row";
}else{
table[i][j] = "Fourth Row";
}
}
}
return table;
}
});