如何在不直接分配值的情况下创建JTable



我不确定如何将值分配给JTable而不直接为初始2D数组分配值,即String data[][]= new String[5][5]{"abc","def","ghi","jkl","mno"};

如果我声明了我的2D字符串数组,然后是defaultTableModel,是否有任何方法可以将ABC,DEF,GHI,JKL,MNO的值分配给数组/JTable,而无需在单独的方法中这样做的情况?

更新

jpanel invoiceviewpanel = 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/电视购买/约翰·史密斯/true

002/冰箱购买/让·史密斯/false

所有摆动组件都可以使用Model。要更新组件您更新模型。

因此,在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的数据添加到模型中。

相关内容

最新更新