packageDemo;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.PrintStream;import javax.swing.*;public class test3 implementsActionListener {
JFrame f;
JMenuBar bar;
JMenu fileMenu, editMenu;
JMenuItem newItem, openItem, lsaveItem, closeItem, saveItem;
JScrollPane cro;
JTextArea area;
JFileChooser chooser;
File file;
JLabel label;//构造方法
publictest3() {//定义对象
f = new JFrame("LSY");
bar= newJMenuBar();
fileMenu= new JMenu("文件");
editMenu= new JMenu("编辑");
area= newJTextArea();
cro= newJScrollPane(area);
JLabel label= newJLabel();//菜单文件扩展类容
newItem = new JMenuItem("新建");
openItem= new JMenuItem("打开");
lsaveItem= new JMenuItem("另存为");
closeItem= new JMenuItem("关闭");//在组件中加入事件监听
newItem.addActionListener(this);
openItem.addActionListener(this);
lsaveItem.addActionListener(this);
closeItem.addActionListener(this);//在菜单文件中加入类容
fileMenu.add(newItem);
fileMenu.addSeparator();
fileMenu.add(openItem);
fileMenu.addSeparator();
fileMenu.add(lsaveItem);
fileMenu.addSeparator();
fileMenu.add(closeItem);
bar.add(fileMenu);
bar.add(editMenu);
f.setJMenuBar(bar);
f.add(cro);
f.setSize(400, 300);
f.setVisible(true);
}
@Override//事件监听处理
public voidactionPerformed(ActionEvent event) {
Object obj=event.getSource();if (obj instanceofJMenuItem) {
JMenuItem item= (JMenuItem) obj; //菜单事件监听处理实例化
if (item == newItem) { //新建事件处理
newtest3();
}else if (item == openItem) { //打开文件处理
chooser = newJFileChooser();
chooser.showOpenDialog(null);
file=chooser.getSelectedFile();
FileInputStream fis;try{
fis= newFileInputStream(file);byte[] b = new byte[fis.available()];
fis.read(b);
area.append(newString(b));
fis.close();
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}else if (item == saveItem) { //保存文件事件处理
chooser = newJFileChooser();
chooser.showSaveDialog(null);
file=chooser.getSelectedFile();if (file != null) {try{
PrintStream out= new PrintStream(newFileOutputStream(file));
out.print(this.area.getText());
out.close();
}catch(FileNotFoundException e) {
e.printStackTrace();
}
}
}else if (item == closeItem) { //关闭文件事件处理
System.exit(1);
}
}
}
}