2011-02-18 11 views
1

簡而言之:我如何訪問傳遞給eventHandler中的GUI構造函數的參數?eventHandler,定義和訪問參數(Java Swing Netbeans)

更多詳細信息: 我正在使用NetBeans和Swing在Java中編寫插件。我創建了一個包含JTextField的GUI。 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) 
+1

「的NetBeans不會讓我。」似乎是一個很好的例子把NetBrains一邊瞭解*的Java *。也許一旦你學到了足夠的Java,你就可以回到automagic IDE並使它爲你工作,而不是讓它成爲你的狗。 – 2011-02-18 12:09:04

+0

@ Andrew。我完全同意。但是,在剛剛進行了2周「教」曝光和1周任務的教學大綱中,在表面上和下一個主題一樣「覆蓋」下一個主題之前,就沒有時間了。沮喪?你打賭。 – bobox 2011-02-19 19:03:41

回答

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); 
    ... 
}            
+0

謝謝。我描述的情況很糟糕。你的解釋很好地解決了這個問題。我想要訪問的變量作爲參數傳遞給構造函數,而不是在其中分配。因此公共MyClass(OtherClass IwantAccessToThis){... – bobox 2011-02-19 19:14:47

1

正如@trashgod指出的那樣,它正常工作。但是,如果您嘗試使用this來引用變量(例如,this.answer),它將會失敗。

當偵聽器正在執行時,this引用了偵聽器的實例。要引用您的外部類,您需要通過預先輸入類名來限定訪問權限,如下所示:Myclass.this.answer

的JLS是指它作爲一個Qualified this