java MouseListener和MouseAdapter - 传入变量

kra*_*626 4 java listener

我有以下方法:

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);
            }
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

我希望能够获取参数消息,进入JOptionPane,其中是mymessage.有没有办法做到这一点?

我无法访问外部类中的任何变量.有没有办法在那里获得这个价值?我最终还想在其中获得一些其他参数.

谢谢!

aio*_*obe 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);
            }
        }
    };
}
Run Code Online (Sandbox Code Playgroud)