在按钮的EventHandler的handle方法中,我打电话给
test = JOptionPane.showInputDialog(null, "this is a message");
但是,当此事件发生时,没有错误,但是由于此调用,程序完全冻结(如果我注释掉,则所有程序都可以正常工作)。可能是什么原因造成的?为什么这种看似简单的命令不起作用?
编辑:通过“冻结”,我的意思是弹出窗口没有显示并且程序无响应。
如果有助于该程序,则具有一个单独的GUI类,该类可扩展应用程序并形成游戏板-直到程序终止(在此应用程序类上单击“ x”)之前,游戏板一直可见。它正在运行此类来启动应用程序。
更多代码:
public class OpponentChooserEventHandler implements EventHandler<ActionEvent> {
private Game game;
private TimeTracker timer;
private JOptionPane popup;
public OpponentChooserEventHandler(Game game, TimeTracker timer) {
this.game = game;
this.timer = timer;
}
public void handle(ActionEvent event) {
Button button = (Button) event.getSource();
int row = GridPane.getRowIndex(button);
int col = GridPane.getColumnIndex(button);
if(row==5 && col==9) {
this.game.setOpponent(othello.getWhosTurn(),"Human");
String message = "Please enter Player1 time";
String time1 = JOptionPane.showInputDialog(null, message);
//timer.startTimer();
}
该程序用JavaFx编写,JOptionPane是Swing功能。请改用替代javafx功能。