gpt4 book ai didi

java - 如何更改 JTable 中的列名称

转载 作者:行者123 更新时间:2023-12-02 11:51:41 24 4
gpt4 key购买 nike

我需要更改 JTable 中的列名称。现在,名称会自动从数据库中获取。我想将“国家/地区”和“总和”等列的名称更改为“国家/地区名称”和“净金额总和”。我使用 Vector 来创建 JTable,因此更改名称是一个问题。

我的代码:

public class App extends JFrame{

public App() {

Vector<Object> columnNames = new Vector<Object>();
Vector<Object> data = new Vector<Object>();

...

stmt = c.createStatement();
query = "select * from country";
rs = stmt.executeQuery(query);
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();

for (int i = 1; i <= columns; i++)
{
columnNames.addElement(md.getColumnName(i));
}

while (rs.next())
{
Vector<Object> row = new Vector<Object>(columns);

for (int i = 1; i <= columns; i++)
{
row.addElement(rs.getObject(i) );
}

data.addElement(row);
}

rs.close();
stmt.close();
c.close();
}
catch(Exception e)
{
System.out.println(e);
}

DefaultTableModel model = new DefaultTableModel(data, columnNames)
{
@Override
public Class getColumnClass(int column)
{
for (int row = 0; row < getRowCount(); row++)
{
Object o = getValueAt(row, column);

if (o != null)
{
return o.getClass();
}
}

return Object.class;
}
};

JTable table = new JTable( model );
JScrollPane scrollPane = new JScrollPane( table );
getContentPane().add( scrollPane );

JPanel buttonPanel = new JPanel();
getContentPane().add( buttonPanel, BorderLayout.SOUTH );
}

public static void main(String[] args)
{
App frame = new App();
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
frame.pack();
frame.setVisible(true);
}
}

最佳答案

如果您想手动控制列名称,您可以执行以下操作:

String[] columnNames = {"Column1", "Column2", "Column3", "Column4"};
DefaultTableModel model = new DefaultTableModel(columnNames, 0)

您将不再需要列名称的元数据。

然后,当您循环遍历 ResultSet 时,您只需执行以下操作:

while (rs.next())
{
Vector<Object> row = new Vector<Object>(columns);

for (int i = 1; i <= columns; i++)
{
row.addElement(rs.getObject(i) );
}

model.addRow( row )
}

JTable table = new JTable( model );

关于java - 如何更改 JTable 中的列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47840174/

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