好的,所以這個問題可能太基本了,但我一直在Google上搜索,一直沒有找到解決方案(甚至是解決方法)。如果你們中有些人不喜歡這個,我提前表示道歉。我正在用幾個按鈕創建一個GUI應用程序,所以當然我們需要一個鼠標事件(當點擊一個按鈕時)。因此,例如:如何將參數傳遞給Java中的鼠標事件(如果可能)?
public class myProject extends JFrame implements MouseListener {
public int x = 4;
public static void main(String[] args) {
Jframe app = new JFrame();
app.setTitle // and all that jazz...
JLabel label = new JLabel();
label.setText("Old text");
app.add(label);
// Then later on...
public void mouseClicked(MouseEvent e) {
app.setTitle("New Title");
label.setText("New text");
System.out.println(x);
// "app" and "label" throw errors, cannot find symbol
// But x is fine...?
}
}
}
我試着讓app元素公共/私有實例變量,但似乎沒有任何改變。我甚至嘗試創建一種中介類來幫助,一個會將引用複製到交互器作爲實例變量,並使用這些引用的鼠標事件調用方法(第二次嘗試非常接近上面的代碼;但通過嘗試從主方法引用設置公共變量給了我更多的錯誤(關於我們如何不能從靜態方法調用非靜態對象)
因此,與這個野獸錯誤作鬥爭的底線是「野性鵝追」到目前爲止,我會很感激任何提示/技巧/解決方法你可能知道致謝:。)
這對我來說有點不清楚,但爲什麼你要在一個靜態var中存儲一個變量?這是不安全的!只需將鼠標事件實例傳遞給目標方法,你能解釋更多嗎?!共享堆棧跟蹤? – 2013-07-07 08:57:11
您的鼠標點擊方法在main方法內聲明,它不應該工作。 – Lokesh
*「有幾個按鈕,所以當然我們需要一個鼠標事件」*當然你不知道。爲了響應鼠標輸入***和鍵盤,添加一個'ActionListener'到按鈕。*** –