2017-10-30 11 views
0

これで、NetBeans IDEでswing guiを作成しようとしています。私はjavaとbuilding guiの新しいので、学習曲線の少しされている。JFileChooserでファイルを開き、JFrame/JPanelで表示

"Open"というJMenuItemを作成し、JFileChooserを使用してファイルを開いて表示しました。私自身を制限するファイル拡張子は "* .map"です。

私は自分のコードを動作させ、選択したファイルをデスクトップの新しいウィンドウで開きます。しかし、私はどのように私は私のJFrameの中で、新しいウィンドウではなく、ファイルを開くことができます把握しようとしています。 それは.txtファイルではないので、私はJTextAreaまたはJTextFieldを使用できません。 JFrameの内部にJPanelを作成しますか? JTextAreaの内のファイルを表示する方法を考え出すことになった

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

:ここ

は私の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); 
 
       } 
 
     
 
     
 
    }        

関連する問題