eventHandler,定义&访问params(java Swing Netbeans)

时间:2011-02-18 08:41:32

标签: java swing netbeans event-handling

简而言之:如何在eventHandler中访问传递给GUI构造函数的参数?

更多细节: 我使用NetBeans和Swing编写Java插件。我创建了一个带有GUI的Jframe,其中包含一个JTextField。 JTextField的eventHandler将输入的值写入变量。在eventHandler中,我想接下来调用一个方法(),它使用另一个变量,并将其传递给GUI的构造函数。

??如何获得对此变量的访问权限? NetBeans不会让我更改自动生成的eventHandler签名以包含我需要的GUI变量。这个eventHandler代码如下。

这是Java的第3周,如果这是非常基本的问题,请向我道歉 谢谢你 乙 PS感谢网站,它已经回答了很多其他问题。

private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {  // *** no edit allowed to signature (greyed by NetBeans)                                          
    System.out.println( "textField2: " +  jTextField1.getText() );
    String s = jTextField2.getText();
    try {
        numIter = Integer.parseInt(s.trim());
        testMethod(numIter, paramPassedIntoGUIconstructor); 
// ?? how to get paramPassedIntoGUIconstructor?? <<-- key question
    } catch (NumberFormatException nfe) {
        JOptionPane.showMessageDialog(Cytoscape.getDesktop(),
                "That's not an integer!", "NumberFormatException",1);
    }
} // *** no edit allowed (greyed by NetBeans)  

2 个答案:

答案 0 :(得分:2)

我不确定我是否理解这个问题,但你应该能够添加一个成员变量:

private final Integer answer;
// Variables declaration - do not modify
...
// End of variables declaration

在构造函数中初始化它:

public MyClass(Integer iWantAccessToThis) {
    initComponents();
    answer = iWantAccessToThis;
}

访问它, ad lib

private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {                                             
    ...
    System.out.println(this.answer);
    ...
}                                            

答案 1 :(得分:1)

正如@trashgod所说,它只是有效。但是,如果您尝试使用this来引用变量(例如。this.answer),它将会失败。

当侦听器正在执行时,this引用侦听器的实例。要引用您的外部类,您需要通过在类前添加类名来限定访问权限:Myclass.this.answer

JLS将其称为Qualified this