[英]Access Instance Variables in Another Method in Java
我正在用Java編寫GUI。 一種方法初始化並顯示一個表單:
public class launchQMBPMN extends CytoscapeAction {
private JComboBox termDB;
public launchQMBPMN(QMBPMN SaddleSum) {
super("SaddleSum");
setPreferredMenu("Plugins");
}
public class buttonListener implements ActionListener{
public void actionPerformed(ActionEvent e){
JFrame hello = new JFrame();
JLabel test = new JLabel(termDB.getSelectedItem());
test.add(hello);
hello.show();
}
}
public void actionPerformed(ActionEvent e) {
CytoscapeDesktop desktop = Cytoscape.getDesktop();
InteractionTools tools = new InteractionTools();
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.LINE_START;
c.weightx = 0.5;
buttonListener buttonPressed = new buttonListener();
// TERM DATABASE AND WEIGHTS
JPanel qmbpTermsPanel = new JPanel(new GridBagLayout());
termDB = new JComboBox(tools.discoverTermDatabases());
c.gridx = 1;
c.gridy = 0;
qmbpTermsPanel.add(termDB, c);
...
我想在我的buttonListner類中訪問'termDB'。 我怎么做?
只需使用它的名稱訪問它,它就應該在外部類內部工作。
另請參見: http : //download.oracle.com/javase/tutorial/java/javaOO/innerclasses.html
按照您在此處發布的內容進行訪問。 一些評論:
不推薦使用JFrame
show
方法(實際上是java.awt.Window
show
方法),請使用setVisible(true);
代替。
我不確定test.add(hello);
是您真正需要的。 是嗎? 它將框架添加到標簽。
termDB.getSelectedItem()
返回一個Object
, JLabel
構造函數需要一個字符串: termDB.getSelectedItem().toString()
嗎?
您可以創建ButtonListener的子類,並在創建時將termDB傳遞給它,或者進行其他設置。
或者,您可以在需要按鈕偵聽器的地方定義一個匿名內部類,並使termDB為final,它將在您的ButtonListener實現中可用。 或者,您可以像我介紹的第一個選項一樣,將termDB引用傳遞給匿名內部類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.