2017-10-30 3 views
0

그래서 NetBeans IDE에서 스윙 GUI를 만들려고합니다. Im는 java와 building gui의 새로운 것이므로 약간의 학습 곡선이되었습니다.JFileChooser로 파일을 열고 JFrame/JPanel에 표시

"Open"이라는 JMenuItem을 만들고 JFileChooser를 사용하여 파일을 열고 표시했습니다. 내 자신을 제한하는 파일 확장자는 "* .map"입니다.

그래서 내 코드가 작동하고 선택한 파일이 바탕 화면의 새 창에서 열립니다. 하지만 메신저 내 JFrame 안의 파일을 열 수있는 방법을 알아 내려고 노력하고 새로운 창이 아닙니다. .txt 파일이 아니므로 JTextArea 또는 JTextField를 사용할 수 없다고 가정합니다. 내 JFrame 내부에 JPanel을 생성합니까?

private void OpenActionPerformed(java.awt.event.ActionEvent evt) { 
    try{ 
     JFileChooser chooser= new JFileChooser(); 
     chooser.setCurrentDirectory(new File("c:\\temp")); 
     chooser.setFileFilter(new FileNameExtensionFilter("map","MAP")); 
     int value = chooser.showOpenDialog(null); 
     if(value == JFileChooser.APPROVE_OPTION){ 
      File selectedFile = chooser.getSelectedFile(); 
      String path = selectedFile.getAbsolutePath(); 

      File myFile = new File(path); 
      Desktop.getDesktop().open(myFile); 
      messageLabel.setText("Map successfully Loaded!"); 
     } 
    }catch(Exception e){ 
     JOptionPane.showMessageDialog(null,e); 
    } 
+0

'.map' 파일은 파일의 어떤 종류입니까? – Berger

+0

'Desktop.getDesktop(). open (myFile);'하면 OS가 연결된 파일과 연결된 파일을 엽니 다. 현재 응용 프로그램에서 처리하려면 처리를 위해 OS에 제출하는 대신 논리를 호출하면됩니다. –

+0

그래서 .map 파일에는 "place placeName xpos ypos"형식으로 된 장소에 대한 정보가 포함 된 텍스트가 있으므로 새 줄마다 "place London 200 250"과 같은 일련의 레코드가있는지도를 설명하는 파일 – Kimeru

답변

0

가 JTextArea에있는 파일을 표시하는 방법을 알아내는 최대 종료 :

여기 내의 actionPerformed 이벤트 코드입니다. 응답 녀석을 가져 주셔서 감사합니다. 여기 내 업데이트 된 코드 및 해당 작업을 원하는대로.

private void OpenActionPerformed(java.awt.event.ActionEvent evt) {         
 
       JFileChooser chooser= new JFileChooser(); 
 
       chooser.setCurrentDirectory(new File("c:\\temp")); 
 
       chooser.setFileFilter(new FileNameExtensionFilter("map","MAP")); 
 
       int value = chooser.showOpenDialog(null); 
 
       File f= chooser.getSelectedFile(); 
 
       String filename= f.getAbsolutePath(); 
 
       
 
       try{ 
 
        FileReader reader = new FileReader(filename); 
 
        BufferedReader br = new BufferedReader(reader); 
 
        jTextArea1.read(br,null); 
 
        br.close(); 
 
        jTextArea1.requestFocus(); 
 
       }catch(Exception e){ 
 
        JOptionPane.showMessageDialog(null,e); 
 
       } 
 
     
 
     
 
    }        

관련 문제