package day16.task;
import javax.swing.*;import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
public class TestMenu1 
  implements ActionListener{
 JMenuBar jmb = new JMenuBar();
 JTextArea jta = new JTextArea();
 JFrame jf = new JFrame("Menu");
 
public  JMenuBar getMenu(String[] menu,String[][] menuItem){
for(int i=0;i<menu.length;i++){
JMenu jm = new JMenu(menu[i]);
jmb.add(jm);
for(int j=0;j<menuItem[i].length;j++){
if("".equals(menuItem[i][j])){
//不用!=比较,只有String与null比时才用
    jm.addSeparator();//添加分隔线
}else {
JMenuItem jmi = new JMenuItem(
menuItem[i][j]);
jm.add(jmi);
//jm.addSeparator();//添加分隔线
jmi.addActionListener(this);
}
}
}
return jmb;//不可少
}
public TestMenu1(){


 
 jf.add(new JScrollPane(jta));

String[] jm = {"文件","编辑","帮助"};
//二维数组的写法
String[][] jmi = {{"新建","","保存"},
          {"撤销","","剪贴","复制","粘贴","删除","","查找","替换","","全选"},
          {"关于记事本"}};                         
//调用方法
JMenuBar jmb = getMenu(jm,jmi);
jf.setJMenuBar(jmb);
jf.setSize(500,400);
jf.setLocation(300,200);//设置窗口位置
jf.setVisible(true);//尽可能放后
jf.setResizable(false);//窗口大小固定
jf.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestMenu1();
}
public void actionPerformed(ActionEvent e) {
String comm = e.getActionCommand();
if("剪贴".equals(comm)){
jta.cut();
}else if("复制".equals(comm)){
jta.copy();
}else if("粘贴".equals(comm)){
jta.paste();
}else if("删除".equals(comm)){
jta.replaceSelection("");
}else if("新建".equals(comm)){
/*JLabel j1 = new JLabel("               请先保存文件! ");      
Dialog d = new Dialog(jf);
JDialog jd = new JDialog(d,"新建");
jd.add(j1);
            jd.setVisible(true);
            jd.setSize(200,100);
            jd.setLocation(500, 300);*/
JOptionPane.showMessageDialog(null, "请先保存文件!", "新建", JOptionPane.ERROR_MESSAGE);
//JOptionPane.showConfirmDialog(null, 
//"choose one", "choose one", JOptionPane.YES_NO_OPTION);

//String inputValue = JOptionPane.showInputDialog("Please input a value");

//Object[] possibleValues = { "First", "Second", "Third" };
//Object selectedValue = JOptionPane.showInputDialog(null, 
//"Choose one", "Input",
//JOptionPane.INFORMATION_MESSAGE, null,
//possibleValues, possibleValues[0]);
}else if("保存".equals(comm)){
JFileChooser jfc = new JFileChooser();//文件选择器
jf.add(jfc); 
    jfc.showDialog(jf, "保存");
}

}}

解决方案 »

  1.   

    你只选了保存的文件,选了之后要自己实现保存的啊
    else if("保存".equals(comm)){    
                JFileChooser jfc = new JFileChooser();//文件选择器
                jf.add(jfc);     
                int re = jfc.showDialog(jf, "保存");
                if (JFileChooser.APPROVE_OPTION == re) {
                 File file = jfc.getSelectedFile();
                 String text = jta.getText();
                 OutputStream os = null;
                 try {
    os = new FileOutputStream(file);
    os.write(text.getBytes());
    } catch (IOException e1) {
    e1.printStackTrace();
    } finally {
    if (os != null) {
    try {
    os.close();
    } catch (IOException IgnoreWhenClose) {
    }
    }
    }
                }
            }