import java.awt.*;
import java.awt.event.*;public class TestMenu {
public static void main(String[] args) {
new TestMenu().launch();
}
public void launch() {

Frame f = new Frame("记事本");
TextArea ta = new TextArea("",20,20);
f.add(ta,"Center");
MyMonitor mm = new MyMonitor();

MenuBar mb = new MenuBar();
Menu m1 = new Menu("菜单");
Menu m2 = new Menu("编辑");
Menu m3 = new Menu("格式");
Menu m4 = new Menu("帮助");
MenuItem m11 = new MenuItem("新建");
MenuItem m12 = new MenuItem("打开");
MenuItem m13 = new MenuItem("保存");
MenuItem m14 = new MenuItem("另存为");
MenuItem m15 = new MenuItem("退出");
m15.addActionListener(mm);
m11.addActionListener(mm);
m1.add(m11);
m1.add(m12);
m1.add(m13);
m1.add(m14);
m1.addSeparator();
m1.add(m15);
CheckboxMenuItem m31 = new CheckboxMenuItem("二进制");
MenuItem m32 = new MenuItem("字体");
m31.addActionListener(mm);
m3.add(m31);
m3.add(m32);
mb.add(m1);
mb.add(m2);
mb.add(m3);
mb.add(m4);
f.setMenuBar(mb);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setSize(300,200);
f.setLocation(300,150);
f.setVisible(true);
}class MyMonitor implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
System.out.println(s);
if(s.equals("退出")) {
System.exit(0);
} else if(s.equals("新建")) {
new TestMenu().launch();

}
}
}
接下来希望大家能补全,最好有说明。

解决方案 »

  1.   

    敢情你只画了个界面啊?
    用FileInputStream和FileOutputStream就基本能搞定的啊。
      

  2.   

    学GUI开发没有什么用吧 
      

  3.   

    %JAVA_HOME%\demo\jfc\Notepad 下就是一个记事本程序,你去看看。
      

  4.   

    给你个片段吧 自己看看io这块的API 完成 是没有一点问题的 呵呵
      
    ……………………
    else if ("打开".equals(comm)) {
    JFileChooser jfc = new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter(
    "txt document", "txt");
    jfc.setFileFilter(filter);
    int returnresult = jfc.showOpenDialog(jfc);
    if (returnresult == JFileChooser.APPROVE_OPTION) {
    System.out.println(jfc.getSelectedFile().getAbsolutePath());
    try {
    FileInputStream fis = new FileInputStream(jfc
    .getSelectedFile().getAbsoluteFile());
    byte[] b = new byte[1024];
    String temp = "";
    while (true) {
    int i = fis.read(b);
    if (i == -1)
    break;
    temp = temp + new String(b, 0, i);
    }
    fis.close();
    jta.setText(temp);
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    ………………
      

  5.   


    /*
     * 功能 :打开,新建,保存
     * 
     * 未完成功能:查找,替换
     * */
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class fileEdit
    {
    public static void main(String[] args)
    {
    MainFrame frame = new MainFrame();
    frame.setVisible(true);
    }
    }
    class MainFrame extends JFrame
    {
    public static final int WIDTH = 500;
    public static final int HEIGHT = 500;
    boolean isOpened = false;
    boolean isSaved = true;
    boolean isNewFile = false;
    File file = null;
    JTextArea textArea = new JTextArea();
    public void Init()
    {
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setTitle("文件编辑");

    UIManager.put("Menu.font", new Font("微软雅黑", Font.PLAIN,14)); 
    UIManager.put("MenuItem.font", new Font("微软雅黑", Font.PLAIN,14));
    textArea.setFont(new Font("微软雅黑", Font.PLAIN,14));
    textArea.setTabSize(4);
    setLayout(new BorderLayout());
    JMenuBar menuBar = new JMenuBar();
    JMenu menuFile = new JMenu("文件");
    JMenuItem menuItemOpen = new JMenuItem("打开");
    JMenuItem menuItemSave = new JMenuItem("保存");
    JMenuItem menuItemSaveAs = new JMenuItem("另存为");
    JMenuItem menuItemExit = new JMenuItem("退出");
    JMenuItem menuItemNew = new JMenuItem("新建");

    textArea.getDocument().addDocumentListener(new DocumentListener()
    {
    public void removeUpdate(DocumentEvent e)
    {
    if(isOpened)
    {
    setTitle(file.getName() + "*");
    isSaved = false;
    }
    }
    public void insertUpdate(DocumentEvent e)
    {
    if(isOpened)
    {

    setTitle(file.getName() + "*");
    isSaved = false;
    }
    }
    public void changedUpdate(DocumentEvent e){}
    });
    menuItemNew.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    textArea.setText("");
    file = new File("未命名文件");
    setTitle("未命名文件*");
    isNewFile = true;
    isOpened = true;
    }
    });

    menuItemOpen.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    JFileChooser fileChooser = new JFileChooser();
    if(fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
    {
    file  = fileChooser.getSelectedFile();
    setTitle(file.getName());
    try
    {
    textArea.setText("");
    FileReader fr = new FileReader(file);
    int     b = 0;
    //////////////////
    // char[] chars = new char[(int)file.length()];
    // fr.read(chars);
    ///////////////
    while((b = fr.read())!= -1)
    {
    textArea.setText(textArea.getText() + (char)b );
    }
    /////////////////
    fr.close();
    } catch (IOException exception)
    {
    JOptionPane.showMessageDialog(null,"IOException1");
    }

    isOpened = true;
    }
    }
    });
    menuItemSave.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    if(isOpened)
    {
    if(!isNewFile)
    {
    try
    {
    FileWriter fw = new FileWriter(file);
    textArea.setText(textArea.getText().replace("\n", "\r\n"));
    fw.write(textArea.getText());
    fw.close();
    } catch (IOException exception)
    {
    JOptionPane.showMessageDialog(null,"IOException2");
    }
    }
    if(isNewFile) 
    {
    JFileChooser fileChooser = new JFileChooser();
    if(fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION)
    {
    try
    {
    file = fileChooser.getSelectedFile();
    setTitle(file.getName());
    isOpened = true;
    FileWriter fw = new FileWriter(file);
    textArea.setText(textArea.getText().replace("\n", "\r\n"));
    fw.write(textArea.getText());
    fw.close();
    } catch (IOException e2)
    {
    JOptionPane.showMessageDialog(null,"IOException3");
    }
    isNewFile = false;
    }
    }
    setTitle(file.getName());
    isSaved = true;
    }
    }
    });
    menuItemSaveAs.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    JFileChooser fileChooser = new JFileChooser();
    if(fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION)
    {
    try
    {
    file = fileChooser.getSelectedFile();
    setTitle(file.getName());
    isOpened = true;
    FileWriter fw = new FileWriter(file);
    textArea.setText(textArea.getText().replace("\n", "\r\n"));
    fw.write(textArea.getText());
    fw.close();
    } catch (IOException e2)
    {
    JOptionPane.showMessageDialog(null,"IOException3");
    }
    }
    }
    });
    menuItemExit.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    if(!isSaved) 
    {
    int i = JOptionPane.showConfirmDialog(null, "是否保存"); 
    if(i == JOptionPane.NO_OPTION) System.exit(-1); 
    else if(i == JOptionPane.YES_OPTION)
    {
    try
    {
    FileWriter fw = new FileWriter(file);
    textArea.setText(textArea.getText().replace("\n", "\r\n"));
    fw.write(textArea.getText());
    fw.close();
    } catch (IOException exception)
    {
    JOptionPane.showMessageDialog(null,"IOException2");
    }
    setTitle(file.getName());
    isSaved = true;
    }
    else{};
    }
    else System.exit(-1);
    }
    });

    menuItemNew.setAccelerator(KeyStroke.getKeyStroke('N',InputEvent.CTRL_DOWN_MASK));
    menuItemOpen.setAccelerator(KeyStroke.getKeyStroke('O',InputEvent.CTRL_DOWN_MASK));
    menuItemSave.setAccelerator(KeyStroke.getKeyStroke('S',InputEvent.CTRL_DOWN_MASK));

    JScrollPane jsp = new JScrollPane(textArea);
    add(jsp,BorderLayout.CENTER);
    add(menuBar,BorderLayout.NORTH);

    menuBar.add(menuFile);
    menuFile.add(menuItemNew);
    menuFile.add(menuItemOpen);
    menuFile.addSeparator();
    menuFile.add(menuItemSave);
    menuFile.add(menuItemSaveAs);
    menuFile.addSeparator();
    menuFile.add(menuItemExit);

    setSize(WIDTH,HEIGHT);
    setLocationRelativeTo(null);
    }
    public MainFrame()
    {
    Init();
    }
    }