0

我使用 UI 构建器创建它,我成功地将它传递给一个方法(自动生成的自定义代码),但是我将如何从另一个范围引用它?(例如从主要)。

我想执行这种代码,但我需要 jTable1 在我的范围内:

DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
Object[] obj = jtable_element;
model.addRow(obj);
4

3 回答 3

1

我成功地将它传递给一个方法(自动生成的自定义代码),但是我将如何从另一个范围引用它?(例如从主要)。

为了从另一个类访问此表,您需要为此添加一个 getter,JTable因为它private是您使用 UI 构建器生成的类中的一个属性:

public JTable getTable {
    return this.jTable1;
}

但是我最好的建议是不要使用 GUI 构建器。花一些时间学习 Swing 并亲手编写您的 GUI 类。您甚至可以编写更简洁的代码。例如看这个例子

于 2013-11-05T19:20:49.210 回答
1

该表是您班级的私人成员。根据您的评论,您的课程是“XMLappletUI”

在该类中,您可以添加自己的方法。只需将其添加到自动生成的代码下方即可。在 gui 更改后修改自动生成的代码时,netbeans 不会更改您的代码。

所以例如定义一个方法:

public void addRow(){

 DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
 Object[] obj = jtable_element;
 model.addRow(obj);

}

现在,您可以在类实例上调用该方法。

编辑

如果你想传递一个字符串参数

public void addRow(String jtable_element){

     DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
     Object[] obj = {jtable_element};
     model.addRow(obj);

    }
于 2013-11-05T19:27:44.603 回答
0

如果您需要从另一个类访问它:

修改生成的代码以公开一个方法:

  • 返回模型以供您运行此代码
  • 接受一个对象作为参数并运行此代码(可能是这两个选项中更好的一个)。

如果您需要从同一个类访问它,您的选项与上面相同,或者您可以将模型保存到实际类的变量中,您可以在单独的方法中运行此代码。

于 2013-11-05T19:17:55.260 回答