2012-05-12 5 views
2

그러나 파일을 열거 나 단순히 대화 상자를 닫을 때 파일 선택기 대화 상자에서 파일을 열려고합니다. 대화 상자가 다시 나타나고 두 번 닫아야합니다. 여기 내 코드는 두 번째 embeding 한JFileChooser 구성 요소가 이상하게 표시됩니다.

JFileChooser openFileChooser = new JFileChooser(); 
openFileChooser.setDialogType(JFileChooser.SAVE_DIALOG); 
openFileChooser.showOpenDialog(null); 
openFileChooser.setCurrentDirectory(new File(".")); 
if (openFileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){ 
    input = new ObjectInputStream(new FileInputStream(openFileChooser.getSelectedFile())); 
    input.close(); 
} 

코드 라인의 나머지 부분을 처음 만들

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {           
    try { 
     // TODO add your handling code here: 
     ObjectInputStream input; 
     JFileChooser openFileChooser = new JFileChooser(); 
     openFileChooser.setDialogType(JFileChooser.SAVE_DIALOG); 
     openFileChooser.showOpenDialog(null); 
     openFileChooser.setCurrentDirectory(new File(".")); 
     if (openFileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){ 
      input = new ObjectInputStream(new FileInputStream(openFileChooser.getSelectedFile())); 
      input.close(); 
     } 
     javax.swing.JFrame openFileFrame = new javax.swing.JFrame();   
     openFileFrame.setLayout(new BorderLayout()); 
     openFileFrame.setLocationRelativeTo(null); 
     openFileFrame.add(openFileChooser, BorderLayout.CENTER); 
     openFileFrame.pack(); 
     openFileFrame.setVisible(true); 
    } catch (IOException ex) { 
     Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex); 
    } 

} 

답변

2

이 코드 라인이 뭐가 잘못 됐는지 모르겠어요, 하나

javax.swing.JFrame openFileFrame = new javax.swing.JFrame();   
openFileFrame.setLayout(new BorderLayout()); 
openFileFrame.setLocationRelativeTo(null); 
openFileFrame.add(openFileChooser, BorderLayout.CENTER); 
openFileFrame.pack(); 
openFileFrame.setVisible(true); 
+0

환영합니다 – mKorbel

+0

@Truong Thanh Dung 코드 라인별로 단계별 코드 줄을 디버깅해야합니다. [FileInputStream 시뮬레이션]도 예외가 아닙니다. (http://www.java2s.com/Tutorial/Java/) 0240__Swing/1260__JFileChooser.htm) – mKorbel

+0

Tks mate, 나는 그것을 마침내 얻었다. 왜냐하면 ObjectOutputStream을 사용하여 예외 처리를했기 때문이다. 그 변수가 null 일 때 nullpointer를 표시한다. – babygau

1

openFileChooser.showOpenDialog (null)의 첫 번째 항목을 제거합니다.

+0

nullpointer 오류를 표시하는 데 도움이되지 않는다. – babygau

+0

글쎄, 각각 이러한 호출 중 열린 파일 창이 생성됩니다. OPEN_DIALOG가 아닌가? – user845279

+0

나는 그것을 마침내 고쳤다, tks 매우 많은 동료 :) – babygau

관련 문제