2016-07-27 16 views
-1

Ich habe Spielprogramm, wo ich möchte, dass der Spieler das Dateiverzeichnis wählen, um sein Spiel zu speichern. Ich benutze JFileChooser für das funktioniert völlig in Ordnung, aber es wird nicht geschlossen.Java JFileChooser wird nicht sterben

hier ist der Code:

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); 
} 

Ich dachte, dass der Raum wahr ist und es hält die Ausführung von Code jeder tick es sich herausstellen wird der Code nicht aufhören zu lesen, die das Ticken proccess stoppt. Es liest die Methode immer wieder durch. Andere Antworten verwenden Panel, das ich nicht Panel in diesem Programm verwende ich canvas und jframe nur

Antwort

1

wenn dies ist, was Sie suchen, nur um den Dateiauswahldialog nach Auswahl der Datei oder schließen zu können Speichern der Datei Versuchen Sie nur noch, den Code erklärender zu machen, ich denke, das sollte basierend auf meinem Verständnis von dem, was Sie erklärt haben.

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