代码之家  ›  专栏  ›  技术社区  ›  Kwebble

您是否必须更改eclipseve生成的javaswing代码以获得正确的程序?

  •  1
  • Kwebble  · 技术社区  · 14 年前

    使用Eclipse中的可视化编辑器,我启动了一个Swing UI,其中包含一个包含2列的表(JTable)(JTableColumn)。以这种方式向表中添加数据:

    final DefaultTableModel model = (DefaultTableModel) this.jTable.getModel();
    model.addRow(new Object[] {"Column 1", "Column 2"});
    

    model.setColumnCount(this.jTable.getColumnCount());
    

    但是在这个调用之后,我使用UI编辑器定义的表的列标题被更改为“A”和“B”。现在我在想,我是否应该继续像我那样更正生成的代码,还是有更好的方法来使用visualeditor构建UI?

    完整地说,这是用于定义表和列的生成代码:

    private JTable getJTable() {
        if (this.jTableSongs == null) {
            final TableColumn tableColumn1 = new TableColumn();
            tableColumn1.setHeaderValue("Header 1");
            final TableColumn tableColumn2 = new TableColumn();
            tableColumn2.setHeaderValue("Header 2");
            this.jTableSongs = new JTable();
            this.jTableSongs.addColumn(tableColumn1);
            this.jTableSongs.addColumn(tableColumn2);
        }
        return this.jTable;
    }
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   onof    14 年前

    我不知道这个具体的问题(表列),但在过去,我在VE上也遇到过类似的问题。

    如果属性视图中没有列的数量,则必须以编程方式指定它,编辑代码,但VE不会删除手动添加的代码。

        2
  •  1
  •   camickr    14 年前

    或者有更好的方法来构建UI 使用可视化编辑器?

    我不知道生成的代码应该是什么样子,但以下看起来不一致:

    this.jTable = new JTable(); 
    this.jTableSongs.addColumn(tableColumn1); 
    this.jTableSongs.addColumn(tableColumn2); 
    

    创建了一个jTable变量(并从该方法返回),但列被添加到jTableSongs中。所以在我看来,jTable有0列,这可能会导致异常。