简体   繁体   English

在Java中使用鼠标侦听器时如何跨变量发送

[英]How to Send across variables when using mouse listener in java

This is my code: 这是我的代码:

JTextField[] _CreatePlayers = new JTextField[3];
    for (int i = 1; i < _CreatePlayers.length; i++) {
        _CreatePlayers[i] = new JTextField("Player " + i+" input name here");
        _CreatePlayers[i].addMouseListener(new MouseAdapter(){
        @Override
        public void mouseClicked(MouseEvent e){
            _CreatePlayers[i].setText("");  <- error is here as i is not inside the class made by mouse click
        }
    });
        _2Player.add(_CreatePlayers[i]);
    }

i am unsure how to fix this issue as i am not very experienced with event driven programming 我不确定如何解决此问题,因为我对事件驱动的编程不太熟悉

This is a simple workaround: 这是一个简单的解决方法:

    for (int i = 1; i < _CreatePlayers.length; i++) {
        final int finalI = i;
        _CreatePlayers[i] = new JTextField("Player " + i+" input name here");
        _CreatePlayers[i].addMouseListener(new MouseAdapter(){
            @Override
            public void mouseClicked(MouseEvent e){
                _CreatePlayers[finalI].setText("");
            }
        });
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM