【发布时间】:2025-12-29 14:05:11
【问题描述】:
我不知道为什么在刷新 JTable 后列名被命名为 "A","B","C" ...。
我创建了一个类来刷新 JTable。
public class TableModelClass extends AbstractTableModel
{
Object[][] data;
Object[] title;
public TableModelClass(Object[][] dat, Object[] tit)
{
data = dat;
title = tit;
}
@Override
public int getColumnCount()
{
if(title != null)
return title.length;
return 0;
}
@Override
public int getRowCount()
{
if(data != null)
return data.length;
return 0;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex)
{
return data[rowIndex][columnIndex];
}
}
我在我的班级中设置了默认的 JTables 值:
Object[] titlesDefault = { "tit1", "tit12","tit3"};
Object[][] dataDefault = {{ "1", "2","3"},
{"1", "2","3"}};
_jTable = new JTable(dataDefault, titlesDefault);
_bAddTable.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
try
{
Object[] titles2 = { "1", "2","3", "1", "2","3"};
Object[][] data = {{ "1", "2","3"},
{ "1", "2","3"},
{"1", "2","3"}};
data.setModel(new TableModelClass(data, titles2));
}
catch (ClassNotFoundException)
{
e1.printStackTrace();
}
};
});
在此之后,我收到列名中的字母。为什么?
【问题讨论】:
-
1) 该代码是否可以编译?您的 Object[][] 变量不是二维数组,而是字符串的一维数组。 2) 当调用 ActionListener 时,切勿在 JButton 上使用 MouseListener。
-
代码编译好了,我应该用什么?
-
1) 你的二维数组应该包含一个二维数组。 2) 同样,JButtons 应该使用 ActionListeners。本教程将解释所有内容。我不是 JTable 专业人士,但您可能还需要使用列模型。
-
我尝试使用 ActionListener 但结果是一样的
标签: java swing jtable refresh jtableheader