Java JFileChooser 不会死

Java JFileChooser wont die

我有一个游戏程序,我希望玩家选择文件目录来保存他的游戏。我正在使用 JFileChooser 因为它工作得很好但它不会关闭。

代码如下:

    public NewGameState(Game game) {
    super(game);

    open = new JButton();
    fc = new JFileChooser();
    fc.setCurrentDirectory(new java.io.File("."));
    fc.setDialogTitle("Choose file for the new world");
    fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

}

public void tick() {

    input();
    selection();
}

public void render(Graphics g) {

    drawSelection(g);
    drawGUI(g);
}

private void input(){

    if(game.getKeyManager().up){

        selection --;
    }else if(game.getKeyManager().down){

        selection ++;
    }

    if(game.getKeyManager().space){

        if(selection == 0){

            fileChooser();      //calling fileChooser method when pressing space
        }else if(selection == 1){

        }else if(selection == 2){


        }
    }
}

private void selection(){
    //blahbahabahaa
    }
}

//fileChooser
private void fileChooser(){

    fc.showOpenDialog(null);
}

我认为 space 是正确的,它会在每次滴答时继续执行代码,结果证明它不会停止读取停止滴答过程的代码。它一遍又一遍地读取方法。其他答案使用面板,我在这个程序中没有使用面板我只使用 canvasjframe

如果这正是您想要的,只是为了能够在选择文件或保存文件后关闭“文件选择器”对话框。只是仍然尝试使代码更具解释性我认为这应该基于我对你解释的内容的理解

 int c = fileWindow.showSaveDialog(this);
        if(c==JFileChooser.APPROVE_OPTION)
            files.append(fileWindow.getSelectedFile()+"\n");