gpt4 book ai didi

java - JTable 在运行时更新

转载 作者:行者123 更新时间:2023-12-01 18:17:12 24 4
gpt4 key购买 nike

有没有办法在运行时更新 JTable 而无需使用构造函数?

我有一个 JTable,已添加到 JPanel 中,但我希望能够稍后在代码中定义列和数据,而不是立即在构造函数方法中定义,有没有办法做到这一点?

JPanel jp = new JPanel();
JTable table = new JTable();
jp.add(table);

另外,有没有办法将二维数组列表转换为二维对象数组,以便我可以在 JTable 中使用它?

最佳答案

I want to be able to define the columns and data at a later point in the code instead of immediately in the constructor method, is there a way to do this?

使用 TableModel 来管理数据。请参阅“默认”实现 DefaultTableModel 。您可以随时使用JTable#setModel并通过新的TableModel

JTable table = new JTable();
...
// Some time later
String[] headers = ...
Object[][] data = ...
DefaultTableModel model = new DefaultTableModel();
table.setModel(model);

或者您可以使用模型创建表,并在任何时候调用模型的方法,例如(在 DefaultTableModel 的情况下)、 setColumnIdentifiers , addRow , setDataVector

String[] headers = ...
DefaultTableModel model = new DefaultTableModel(headers, 0);
JTable table = new JTable(model);
...
// Some time later
Object[] row = ...
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addRow(row);
String[] newHeaders = ...
model.setColumnIdentifiers(newHeaders);

"Also, is there a way to convert a dimensional array list into a 2 dimensional object array so I can use it in the JTable?"

我从未听说过“维数组列表”这个术语。但如果你想添加 ArrayList<String>作为一行,您只需调用 list.toArray并向 DefaultTableModel 添加一行。如果是ArrayList<YourType> ,您可能需要创建自定义表模型实现。 (见下面的链接)

查看更多信息:

关于java - JTable 在运行时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28890737/

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