2017-02-16 1 views
0

이 코드는 기본 텍스트 편집기 인 작은 응용 프로그램을 만들고 모든 편집기에서 명백한 드롭 다운 파일 메뉴를 추가했습니다. 'new', 'open', 'save'및 'save as'와 같은 기능을 포함합니다 '.파일을 텍스트 편집기에 저장하는 방법은 무엇입니까?

기존 파일과 새 파일에 저장하는 기능을 추가하는 방법을 알지 못합니다.

import java.io.*; 
import java.awt.event.*; 
import javax.swing.*;  
import java.io.IOException; 
import java.nio.file.StandardOpenOption; 

public class Editor implements ActionListener 
{  

    boolean updateStatus; 
    Editor Jedtr; 
    boolean saved; 
    boolean newFileFlag; 
    String fileName;  
    static File fileRef; 


    JFrame f;  
    JMenuBar mb;  
    JMenu file,edit,help;  
    JMenuItem cut,copy,paste,selectAll,NewFile,Open,Save,SaveAs;  
    JTextArea ta; 


    Editor(){ 


     saved=true; 
     newFileFlag=true; 
     fileName=new String("Untitled"); 
     fileRef=new File(fileName); 

     Open=new JMenuItem("Open File");  
     Open.addActionListener(this);    
     file=new JMenu("File");  
     file.add(Open);    
     mb=new JMenuBar();  
     f=new JFrame();  
     cut=new JMenuItem("Cut");  
     copy=new JMenuItem("Copy");  
     paste=new JMenuItem("Paste");  
     selectAll=new JMenuItem("Select All");  

     ///////////////////////////////////////////////////////////////////////////////// 

     NewFile =new JMenuItem("New"); 
     Open=new JMenuItem("Open"); 
     Save=new JMenuItem("Save"); 
     SaveAs=new JMenuItem("Save As"); 

     /////////////////////////////////////////////////////////////////////////////////// 

     cut.addActionListener(this);  
     copy.addActionListener(this);  
     paste.addActionListener(this);  
     selectAll.addActionListener(this); 

     ///////////////////////////////////////////////////////////////////////////////////// 

     NewFile.addActionListener(this); 
     Open.addActionListener(this); 
     Save.addActionListener(this); 
     SaveAs.addActionListener(this); 

     ////////////////////////////////////////////////////////////////////////////////// 

     mb=new JMenuBar();  
     file=new JMenu("File");  
     edit=new JMenu("Edit");  
     help=new JMenu("Help");  
     file.add(NewFile);file.add(Open);file.add(Save);file.add(SaveAs);  
     edit.add(cut);edit.add(copy);edit.add(paste);edit.add(selectAll);  
     mb.add(file);mb.add(edit);mb.add(help);  

     /////////////////////////////////////////////////////////////////////////////////////// 

     ta=new JTextArea();  
     ta.setBounds(5,5,1200,1200);  
     f.add(mb);f.add(ta);  
     f.setJMenuBar(mb); 
     f.setLayout(null);  
     f.setSize(800,400);  
     f.setVisible(true); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    }  




    /////////////////////////////Action performed///////////////////////////////////////////////// 


    public void actionPerformed(ActionEvent e) 
    { 
     if(e.getSource()==cut)     
      ta.cut();        // to cut text. 
     else if(e.getSource()==paste) 
      ta.paste();        // to paste text. 
     else if(e.getSource()==copy) 
      ta.copy();        // to copy text. 
     else if(e.getSource()==selectAll) 
      ta.selectAll();      // to select text. 
     else if(e.getSource()==Open) 
     { 
      JFileChooser fc=new JFileChooser(); 
      int i=fc.showOpenDialog(f); 
      if(i==JFileChooser.APPROVE_OPTION) 
      { 
       File f=fc.getSelectedFile(); 
       String filepath=f.getPath(); 
       try 
       { 
        BufferedReader br=new BufferedReader(new FileReader(filepath)); 
        String s1="",s2=""; 
        while((s1=br.readLine())!=null) 
        { 
         s2+=s1+"\n"; 
        } 
        ta.setText(s2); 
        br.close(); 
       } 
       catch (Exception ex) 
       { 
        ex.printStackTrace(); 
       } 
      } 
     }          //to open an existing file 
     else if(e.getSource() == NewFile) 
     { 
      JFileChooser fc=new JFileChooser(); 
      int j=fc.showOpenDialog(f); 
      if (j==JFileChooser.CUSTOM_DIALOG); 

      System.out.println("New File"); 

      File file = new File("C:\\Android\\.txt"); 

      boolean result; 
      try { 
       // create a new file 
       result = file.createNewFile(); 
       // test if successfully created a new file 
       if(result){ 
        System.out.println("Successfully created "+file.getAbsolutePath()); 

       } 
       else{ 
        System.out.println("Filed creating "+file.getAbsolutePath()); 
       } 
      } 
       catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 
    }           // to create a new file. 

      else if(e.getSource()== SaveAs) 
      {         // what to specify here? 
       } 



      else if(e.getSource()==Save) 
      {         // what to specify here? 
      } 
} 




       /*private Object SaveAs(File temp) 
{ 
    // TODO Auto-generated method stub 
    return null; 
} 



/////////////////////////////////////////////////////////////////////////////////////////////// 


private void updateStatus(File temp, boolean b) 
{ 
    // TODO Auto-generated method stub 

}*/ 
       boolean isSave() 
       { 
        return saved;} 

       void setSave(boolean saved) 
       { 
        this.saved=saved; 
       } 

       String getFileName() 
       { 
        return new String(fileName); 
       } 

       void setFileName(String fileName) 
       { 
        this.fileName=new String(fileName); 
       } 

       ////-------File-------//////// 

       //public class File implements ActionListener{} 

       ////-------File-------//////// 

       /*public void actionPerformedf(ActionEvent O) {  
if(O.getSource()==Open){  
    JFileChooser fc=new JFileChooser();  
    int i=fc.showOpenDialog(f);  
    if(i==JFileChooser.APPROVE_OPTION){  
     File f=fc.getSelectedFile();  
     String filepath=f.getPath();  
     try{ 
     BufferedReader br=new BufferedReader(new FileReader(filepath));  
     String s1="",s2="";       
     while((s1=br.readLine())!=null){  
     s2+=s1+"\n";  
     }  
     ta.setText(s2);  
     br.close();  
     }catch (Exception ex) 
     { 
      ex.printStackTrace();   
     } 
    } 
    } 
    }*/  

       public static void main(String[] args) {  

        new Editor(); 

       }  
      } 
+0

1) 일반적인 Java 명명법 (예 :'EachWordUpperCaseClass','firstWordLowerCaseMethod()','firstWordLowerCaseAttribute'가 'UPPER_CASE_CONSTANT'가 아니면 명명 규칙)을 배우고 일관되게 사용하십시오. 2) Java GUI는 다른 로케일에서 다른 PLAF를 사용하여 다른 OS, 화면 크기, 화면 해상도 등에서 작동해야합니다. 따라서, 픽셀 완벽한 레이아웃에 도움이되지 않습니다. 대신 레이아웃 관리자 또는 [조합] (http://stackoverflow.com/a/5630271/418556)과 [공백] 레이아웃 채우기 및 테두리 (http://stackoverflow.com/a/17874718/)를 사용하십시오. 418556). –

+0

.. 3) 들여 쓰기 코드 행과 블록의 논리적이고 일관된 형식을 사용하십시오. 들여 쓰기는 코드의 흐름을 따라 가기 쉽도록 만들어졌습니다. 4) 편집기에서 텍스트를로드하는 방법은보다 간단하게 수행 할 수 있습니다. ['JTextComponent.read (Reader, Object)'] (http://docs.oracle.com/javase/8/docs/api/javax/ 자세한 내용은 swing/text/JTextComponent.html # read-java.io.Reader-java.lang.Object-)를 참조하십시오. 5) 텍스트를 파일에 저장하려면 ['JTextComponent.write (Writer) //docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#write-java.io.Writer-),** .. –

+0

6) 더 많은 도움을 받으려면 다음을 수행하십시오. 당신이 붙어있는 곳에 대해 좀 더 구체적으로 설명 할 필요가 있습니다.이 질문은 너무 광범위합니다. –

답변

0

애플릿은 로컬 파일 시스템에 액세스 할 수 없습니다. 가까운 장래에, 애플릿이 전혀 존재하지 않을 때, 이것은 로 고정 될 것입니다. Oracle에 감사드립니다!

+0

'애플릿'이 두 번 언급되는 동안 코드는 애플리케이션을 보여줍니다. 좀 더 명확하게하기 위해 질문을 조금 수정했습니다. –

관련 문제