如何在收到用户输入变量后才激活类?

How to activate a class ONLY after receiving user input variable?

提问人:Hannah Lee 提问时间:9/12/2020 更新时间:9/12/2020 访问量:45

问:

我想在获取用户输入后激活某个类。但是,它与用户输入的摆动框架同时实现。因此,它不能有效地接收用户输入变量并给出“空指针”异常。

我搜索了互联网并获得了使用“ActionListener”接口的想法,但没有实质性内容来触发操作(对于addActionListener),它没有按预期工作。

这是代码的主要条目。

public static void main(String[] args)  {
        new Controller();
    }

和控制器

private ActionListener listener;

public Controller(){
    SwingUtilities.invoke(new MyRunnable(listener));
}

和 MyRunnable

public class MyRunnable implements Runnable, ActionListener{

    private ActionListener listener;
    private List<Player> playerInfo;
    private List<Node> playerNode;

    public MyRunnable(ActionListener listener){
    this.listener = listener;
    }

    @Override
    public void run(){
        new NCT(playerInfo, playerNode);
    }

    @Override
    public List<Player> setAllPlayers() {
        return playerInfo = listener.setAllPlayers();
    }

    @Override
    public List<Node> setAllNodes() {
        return playerNode = listener.setAllNodes();
    }

在实现 ActionListener 时,需要 2 个方法中的@Override,因为操作类的原始源假定会带来用户输入。

public PlayerRoles(ActionListener listener) {
    this.listener = listener;
}
-----Here are setAllPlayers and setAllNodes----

我在这里错过了什么? 我知道我需要将“addActionListener”放到某个地方,但我不知道该放在哪里。 请帮帮我..

谢谢~!!!

Java 多线程 nullPointerException 用户输入 操作侦听器

评论

0赞 MarsAtomic 9/12/2020
ActionListeners 附加到 Swing UI 组件。如果希望侦听器运行类,则侦听器将等待用户与它附加到的任何组件进行交互。最好为UI提供代码,而不是尝试运行的类 - 这不是解决方案所在。
0赞 NomadMaker 9/12/2020
Listener是 Swing UI 系统的特定部分。侦听器的工作通常是从用户那里获取输入(可能是单击按钮),然后快速处理。

答: 暂无答案