gpt4 book ai didi

java - 刷新 JTable java 后更改列名

转载 作者:行者123 更新时间:2023-12-01 23:39:01 25 4
gpt4 key购买 nike

我不知道为什么刷新 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();
}

};
});

此后我收到列名称中的字母。为什么?

最佳答案

在不重写 getColumnName 的情况下,TableModel 使用默认值“A”、“B”、“C”等。

@Override
public String getColumnName(int column) {
return title[column];
}

为此,您需要返回一个String,以便它与父类(super class)中的返回类型相对应。 title 变量应定义为 String[] 类型。

关于java - 刷新 JTable java 后更改列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18241755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com