Java JFileChooser不会死

时间:2016-07-27 21:49:20

标签: java swing jfilechooser

我有游戏程序,我希望玩家选择文件目录来保存他的游戏。我正在使用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);
}

我认为空间是真的并且它每次打勾都会继续执行代码,结果它不会停止读取停止滴答过程的代码。它一遍又一遍地阅读方法。其他答案是使用我在这个程序中没有使用面板的面板我只使用canvasjframe

1 个答案:

答案 0 :(得分:1)

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

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