2011-11-27 6 views
5

작은 프로젝트로서 텍스트 편집기를 만드는 것이 멋지다고 생각했습니다. 현재 파일을 여는 중이다. 이것은 (오픈은 JMenuItem입니다 eActionEvent입니다) 파일을 여는 내 코드입니다 :JFileChooser로 파일 열기

else if (e.getSource() == open) { 
     JFileChooser choice = new JFileChooser(); 
     int option = choice.showOpenDialog(this); 
     if (option == JFileChooser.APPROVE_OPTION) { 
      try{ 
       Scanner scan = new Scanner(new FileReader((open).getSelectedFile().getPath())); 
      } 
     } 

    } 

try 블록은 나에게 문제를주고있다. 이식에서는 JMenuItem의 경우 getSelectedFile()이 정의되지 않았다고 말합니다. 또한 MenuItem에 대해서도 정의되지 않은 것으로 보입니다. 이 방법에 접근하는 또 다른 방법이 있을까요? 아니면 같은 방식으로 작동하는 다른 방법이 있습니까?

+0

; ' – Krishan

+0

그 방법은 JFileChooser에 있습니다 : choice.getSelectedFile(); –

+0

더 좋은 JFileChooser가 있습니까? Microsoft Open 상자에서 열려있는 것처럼 보이게하려면 어떻게해야합니까? –

답변

9

당신은 돌아왔다되면 JFileChoosergetSelectedFile() 전화, 그래서 당신의 코드를 변경해야합니다) (그것은`choice.getSelectedFile해야

choice.getSelectedFile() 
3
private void selectfileActionPerformed(java.awt.event.ActionEvent evt) {           

    JFileChooser jFileChooser=new JFileChooser(); 
    StringBuffer buffer; 
    buffer = new StringBuffer(); 
    int result= jFileChooser.showOpenDialog(this); 
    if(result==JFileChooser.APPROVE_OPTION) 
    { 
     try { 
      FileReader reader; 
      reader = null; 
      JOptionPane.showMessageDialog(this,"hii user clicked open sysytem"); 
      File file=jFileChooser.getSelectedFile(); 
      reader=new FileReader(file); 
      int i=1; 
      while(i!=-1) 
      { 
       i=reader.read(); 
       char ch=(char) i; 
       buffer.append(ch); 

      } 

      notepad.setText(buffer.toString()); 
     } catch (FileNotFoundException ex) { 
      Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (IOException ex) { 
      Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex); 
     } 

    } 
}           
+1

설명 텍스트를 추가하여 코드의 관련 섹션을 설명하는 것이 좋습니다. – MasterAM

0
import java.awt.EventQueue; 

public class FileChooser extends JFrame 
{ 
    private JPanel contentPane; 
    String filename; 
    // main 
    public static void main(String[] args) 
    { 
     EventQueue.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       try 
       { 
        FileChooser frame = new FileChooser(); 
        frame.setVisible(true); 
       } catch (Exception e) 
       { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    public FileChooser() 
    { 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setBounds(100, 100, 450, 300); 
     contentPane = new JPanel(); 
     contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
     setContentPane(contentPane); 
     contentPane.setLayout(null); 
     // button to selct file 
     JButton btnNewButton = new JButton("Select file"); 
     btnNewButton.setBounds(10, 2, 89, 23); 
     contentPane.add(btnNewButton); 
     // area to display file content 
     final JTextArea textArea = new JTextArea(); 
     textArea.setBounds(10, 36, 414, 215); 
     contentPane.add(textArea); 
     // save button 
     final JButton btnSave = new JButton("Save"); 
     btnSave.addActionListener(new ActionListener() 
     { 
      public void actionPerformed(ActionEvent arg0) 
      { 

       try 
       { 
        FileWriter writer = new FileWriter(filename.replace(".", 
          "_out.")); 
        BufferedWriter bwr = new BufferedWriter(writer); 

        bwr.write(textArea.getText()); 

        bwr.close(); 
        writer.close(); 
        System.out.println(textArea.getText()); 
       } catch (Exception e) 
       { 
        System.out.println("Error"); 
       } 
      } 
     }); 
     btnSave.setBounds(283, 2, 89, 23); 
     contentPane.add(btnSave); 
     // listen to button clicks 
     btnNewButton.addActionListener(new ActionListener() 
     { 
      public void actionPerformed(ActionEvent ae) 
      { 
       JFileChooser fileChooser = new JFileChooser(); 
       int returnValue = fileChooser.showOpenDialog(null); 
       if (returnValue == JFileChooser.APPROVE_OPTION) 
       { 
        File selectedFile = fileChooser.getSelectedFile(); 
        filename = selectedFile.getAbsolutePath(); 

        try 
        { 
         FileReader reader = new FileReader(filename); 
         BufferedReader br = new BufferedReader(reader); 
         textArea.read(br, null); 
         br.close(); 
         System.out.println(textArea.getText()); 

        } catch (Exception e) 
        { 
         System.out.println("Error"); 
        }enter code here 

       } 

      } 
    enter code here 
     }); 

    } 
} 
+0

설명을 추가하면 도움이됩니다. –

+0

코드를 복사하여 실행하십시오. 그것은 텍스트 파일을 열고 그것을 저장합니다. – user4540837