2011-11-27 12 views
5

के साथ फ़ाइलों को खोलना एक छोटी सी परियोजना के रूप में मैंने सोचा था कि यह एक टेक्स्ट एडिटर बनाने के लिए अच्छा होगा। मैं वर्तमान में फाइलें खोलने पर फंस गया हूँ। इस फ़ाइल को खोलने के लिए मेरी कोड है (e एक ActionEvent है, खुले एक JMenuItem है):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())); 
      } 
     } 

    } 

कोशिश ब्लॉक मुझे परेशानी दे रहा है। ग्रहण कह रहा है कि getSelectedFile() टाइप JMenuItem के लिए अपरिभाषित है। यह MenuItem एस के लिए भी अपरिभाषित प्रतीत होता है। क्या इस दृष्टिकोण के लिए कोई और तरीका है, या एक और तरीका जो वही काम करता है?

+0

यह 'होना चाहिए choice.getSelectedFile(); ' – Krishan

+0

वह विधि JFileChooser पर है: choice.getSelectedFile(); –

+0

क्या कुछ बेहतर है जो JFileChooser। यदि आप माइक्रोसॉफ्ट ओपन बॉक्स में इसे खोलना चाहते हैं तो क्या होगा। –

उत्तर

9

आप JFileChooser एक बार यह वापस आ गया है पर 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

संबंधित मुद्दे