有 Java 编程相关的问题?

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

java将数据插入JTable?

我正在使用netbeans IDE,它附带了一个非常方便的GUI创建者工具,但遇到了麻烦

我正在创建的应用程序首先查询数据源,并以字符串数组的形式接收该数据。如何将这些数据插入到使用GUI creator放入窗口的jtable中

我不是一个完全的java新手,所以我知道GUI背后的代码,以前也做过swing编程

例如,假设我有两个字符串数组:

String[] tableA_01 = {"Column01","Column02","Column03","Column04"};
String[] tableA_02 = {"Data01","Data02","Data03","Data04"};

如何将第一个数组的值插入第一列,然后将第二个数组的值插入第二列,我以前没有在swing中使用JTable组件,所以我真的不知道

任何帮助都将不胜感激


共 (4) 个答案

  1. # 1 楼答案

    如果您以前做过Swing编程,您应该知道GUI组件由单独的模型类支持。对于像文本字段这样的简单组件,您可以不用处理太多,但对于表,您必须处理TableModel。您可以直接使用^{},它甚至有一个接受二维数组的构造函数

  2. # 2 楼答案

    嗯,我怀疑你会把它们用作列的数据。相反,看起来第一个数组将是4列的“header”值,然后第二个数组将是这4列的“data”值

    您的代码类似于:

    DefaultTableModel model = new DefaultTableModel( tablea_01, tableA_02);
    JTable table = new JTable( model );
    

    阅读JTableAPI,并按照Swing教程中关于“如何使用表”的链接获取更多信息和工作示例

  3. # 3 楼答案

    您做得都不对,伙计,在Jtable的defaultTableModel中,您可以非常轻松地添加数据。 比如说

    DefaultTableModel table = (DefaultTableModel) myJTable.getModel();
    table.addRow{"<column1 value>","<column2 value>"};// maybe even more columns
    

    所以从你的两个数组,即

    String[] tableA_01 = {"Column01","Column02","Column03","Column04"};
    String[] tableA_02 = {"Data01","Data02","Data03","Data04"};
    

    使数组像

    String[] row1 = {"Column01","Data01"};
    String[] row2 = {"Column02","Data02"};
    String[] row3 = {"Column03","Data03"};
    String[] row4 = {"Column04","Data04"};
    

    看起来很乏味,但您可以将其放入循环并使用

    table.addRow(row1);
    
  4. # 4 楼答案

    数据不直接进入JTable;相反,它进入TableModel。您可以使用DefaultTableModel或创建自己的实现

    如果DefaultTableModel不做您想做的事情,那么对AbstractTableModel进行子类化非常容易