调用JOptionPane.showInputDialog时程序冻结

问题描述 投票:0回答:1

在按钮的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();
}
java javafx joptionpane
1个回答
0
投票

该程序用JavaFx编写,JOptionPane是Swing功能。请改用替代javafx功能。

© www.soinside.com 2019 - 2024. All rights reserved.