gpt4 book ai didi

java - 如何在不直接赋值的情况下创建 JTable

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

我不确定如何在不直接将值分配给初始二维数组的情况下将值分配给 JTable,即 String data[][]= new String[5][5]{"abc","def","ghi","jkl","mno"};

如果我声明了 2D 字符串数组,后跟 defaultTableModel,有什么方法可以将 abc、def、ghi、jkl、mno 的值分配给 Array/JTable 而无需执行此操作可能像上面那样在一个单独的方法中?

更新

JPanel 发票ViewPanel= new JPanel(null);

String data[][]= new String[4][10];  
String columnHeaders[]={"Invoice ID","Invoice Name","Customer", "Complete?"};

DefaultTableModel model = new DefaultTableModel(data, columnHeaders) {

boolean[] Editable= new boolean[]{
false, false, false, true
};

public boolean isCellEditable(int rowIndex, int columnIndex) {
return editableCells[columnIndex];
}

@Override
public Class<?> getColumnClass(int columnIndex)
{
return columnClass[columnIndex];
}
};

JTable table=new JTable(model);

JScrollPane tableContainer=new JScrollPane(table);

final Class[] columnClass = new Class[]
{
Integer.class, String.class, String.class, Boolean.class
};

public void launch()
{
this.setLayout(new FlowLayout());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


this.add(invoiceViewPanel);
invoiceViewPanel.add(tableContainer);
this.add(tableContainer);

this.setTitle("Invoices");
this.setSize(500,600);
this.setVisible(true);
this.setResizable(false);

}

这是我的代码的基本版本。这只是我的 JTable 的初始化。

我有一个格式为的文本文件

001/ TV Purchase/ John Smith/ true

002/ Refrigerator Purchase/ Jean Smith/ false

最佳答案

所有 Swing 组件都与模型一起使用。要更新组件,请更新模型。

因此,对于 JTable,您可以使用以下方法为表创建一个“空”模型:

String[] columnNames = { "Column1", "Column2", ... };
DefaultTableModel model = new DefaultTableModel(columnNames, 0);
JTable table = new JTable( model );

现在,当您想向模型添加数据时,可以使用:

Object[] row = {"data1", data2", ... };
model.addRow( row );

阅读 DefaultTableModel API 了解更多更改数据的方法。您还可以向模型添加数据Vector

关于java - 如何在不直接赋值的情况下创建 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40976968/

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