2010-12-07 4 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

Я не могу получить доступ к каким-либо переменным изнутри класса, находящегося снаружи.

Не в целом, но вы можете доступа конечные переменные, так просто поставить final перед String 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); 
      } 
     } 
    }; 
} 
Смежные вопросы