有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing Java将列和数据添加到现有JTable中

我有一个小型java应用程序,我想把一些数据和它的列放在现有的JTable中

这是我的专栏和数据

String[][] data; // this object gets it's contents from another function
String[] columns={"Name","Value"}; //these are the columns that should be added to JTable

那么,我应该如何添加和查看“现有”JTable中的数据呢?我不想创建动态JTable

编辑:

我把它写进了函数中,这个函数填充了上面的变量。之后我如何刷新我的JTable

tblSonuc=new JTable(data,columns);

共 (2) 个答案

  1. # 1 楼答案

    用所需的数据填充数据[],对列[]执行同样的操作,然后将其放入构造函数。比如:

    String[][] data = {{"Row1Col1","Row1Col2"},{"Row2Col1","Row2Col2"}};
    String[] columns = {"Column 1","Column 2"};
    JTable table = new JTable(data, columns);
    
  2. # 2 楼答案

    要动态添加行,请使用TableModel。一个已经实现的简单方法是DefaultTableModel。只需将模型设置为JTable

    String[] columns = {"Column 1","Column 2"};
    DefaultTableModel model = new DefaultTableModel(columns, 0); <  0 is number of rows
    JTable table = new JTable(model);
    

    只需使用模型的addRow方法,该方法采用Object[]Vector。所以你可以这么做

    Object[] rowData { data1, data2 };
    model.addRow(rowData);
    

    有关更多方法,请参见How to Use TablesDefaultTableModel上的更多内容


    编辑

    "this string array is already created and filled in class A. I just take it from A and put into my new variable in class B"

    如果要从类中添加2D数组中的数据,只需循环遍历该数组并将其添加到模型中

    A a = new A();
    String[][] students = a.getDtudents();
    
    for (String[] row : students) {
        model.addRow(row):
    }
    

    编辑2

    如果您使用的是GUI Builder,JTable的模型默认为DefaultTableModel。要设置模型的设置,只需

    1. 在设计视图中选择/高亮显示表格
    2. 转到属性面板并单击位于模型属性的右侧
    3. 在该对话框中,可以将行数设置为0,并设置列标题

    现在假设您想在actionPerformed中访问模型,只需这样做

    private void actionPerformed(java.awt.event.ActionPerformed e) {
        DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
        model.setRorCount(0);
        A a = new A();
        String[][] students = a.getStudents();
        for (String[] row : students) {
            model.addRow(row);
        }
    }