2010-12-07 33 views
4

我有以下方法:的java的MouseListener和MouseAdapter - 傳遞變量

public static void createDialog(Button b, String message) 
{ 
    MouseListener mouseListener = new MouseAdapter() { 
     public void mousePressed(MouseEvent mouseEvent) { 
      if (SwingUtilities.isLeftMouseButton(mouseEvent)) { 
       JOptionPane.showConfirmDialog(null, 
         "mymessage", "mymessage", JOptionPane.YES_NO_OPTION); 
      } 
     } 
    }; 
} 

我希望能夠得到的參數消息,進入的JOptionPane哪裏是說mymessage。有沒有辦法做到這一點?

我無法訪問外部類中的任何變量。有沒有辦法讓那裏的價值?我最終還想在其中獲得一些其他參數。

謝謝!

+0

「我不能說是類的內部訪問任何變量外。」爲什麼?你是否堅持宣佈你的變量/參數爲「final」? – 2010-12-07 21:59:01

+0

不知道,沒有抵抗,只是無知的可能性我猜...感謝上帝讓你在那裏設置我的海峽! – kralco626 2010-12-07 22:01:59

回答

5

我無法訪問類內部的任何變量。

不是一般的,但你可以訪問最後的變數,所以只是把finalString message參數前:

public static void createDialog(Button b, final String message) { 
    //         ^^^^^ 
    MouseListener mouseListener = new MouseAdapter() { 
     public void mousePressed(MouseEvent mouseEvent) { 
      if (SwingUtilities.isLeftMouseButton(mouseEvent)) { 
       JOptionPane.showConfirmDialog(null, 
         message, message, JOptionPane.YES_NO_OPTION); 
      } 
     } 
    }; 
}