在继续之前等待Java Swing中按下按钮?
所以我有这个GUI在继续之前等待Java Swing中按下按钮?,java,swing,user-interface,Java,Swing,User Interface,所以我有这个GUI public ChangePokemonView(Controller c) { this.controller = c; this.currentBattleEnvironment = currentBattleEnvironment.getInstance(); populateInactivePokemon(); //REMOVE LATER REMOVE LATER REMOVE LATER REMOVE LATER REMOVE LAT
public ChangePokemonView(Controller c)
{
this.controller = c;
this.currentBattleEnvironment = currentBattleEnvironment.getInstance();
populateInactivePokemon(); //REMOVE LATER REMOVE LATER REMOVE LATER REMOVE LATER REMOVE LATER
this.pokemonList = new JList(inactivePlayerPokemon);
pokemonList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //Only one thing can be selected at a time.
this.pokemonLabel = new JLabel("Choose your Pokemon!");
this.confirmSelection = new JButton("Confirm Selection");
this.confirmSelection.addActionListener(this);
setLayout(new BorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Closes GUI window when close, may need to change later
JPanel centerPanel = new JPanel(new GridLayout(3, 1));
centerPanel.add(pokemonLabel);
centerPanel.add(pokemonList);
centerPanel.add(confirmSelection);
add("Center", centerPanel);
pack();
setVisible(true);
}
这只会创建一个项目列表和一个按钮。当点击按钮时,它将获取所选项目并将其返回给控制器,然后对其进行处理(对于我们的项目,它将更改玩家pokemon)
setCurrentPokemon与控制器之间实际上没有任何关联。我只是想确保它现在就可以得到选择。但是,我在等待选择之前遇到了其他代码的问题
我认为使用Java的Swing和input应该暂停并等待输入,然后再继续编写其余的代码。但是,它现在运行打开选择菜单,然后在控制器中将选定的口袋妖怪设置为null。我曾想过在等待和绕过这一点的过程中加入一个while循环,但我觉得在Swing中有一种更简单的方法来实现这一点
是否有办法让我的其余代码等待按钮被选中并处理操作?
提前感谢。使用
作业窗格
。它将为您构建模式对话框和按钮。模式对话框在关闭之前停止执行
有关更多信息和工作示例,请阅读上Swing教程的部分
add("Center", centerPanel);
不要使用“魔法”值。API将定义应使用的值。这也不是向容器添加组件的方法。相反,您应该使用:
add(centerPanel, BorderLayout.CENTER);
add(centerPanel, BorderLayout.CENTER);