我正在研究Java Swing應用程序,它有一個JFrame
,它有JButton
(另一個類)的數組。當我調用ActionListener
時,我想在JButton
中訪問JFrame
中的變量。目前我正在將這些變量聲明爲static
,以便我可以直接訪問它們。如何訪問另一個類中的類的變量而不使其變爲靜態?
public class MyFrame extends JFrame {
//static variables
public static MyButton buttons[] = new MyButton[N];
public static int counter = 0;
public static int clickedX, clickedY;
public static void main (String[] args) {
new MyFrame();
}
public MyFrame(){
// Doing Everything Here
setSize(300, 380);
setResizable(false);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// Layout, JMenu etc.
}
//static functions to access static variables Here
}
這裏是MyButton
類:
public class MyButton extends JButton implements ActionListener {
private int xID,yID;
public MyButton(int x, int y) {
addActionListener(this);
xID = x;
yID = y;
}
@Override
public void actionPerformed(ActionEvent e) {
// Accessing MyFrame static variables and functions here
}
}
但是否有任何其他方式做到這一點不聲明變量和函數靜態?我想根據所有按鈕中的值執行一些邏輯,只要在任何按鈕中調用ActionListener
即可
注意:我無法在JButton
類中創建JFrame
對象。
注意'buttons'數組中的元素是永遠不會被初始化,它僅包含'null'元素 – msrd0 2014-10-12 10:10:53