//记事本//记事本实例中使用了以下知识//1、ui界面//2、io流//3、事件监听//4、图形//5、JFileChooser 类,用于打开文件,另存为文件。弹出文件选择器对话框
import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;public class Index extends JFrame implementsActionListener{//设置菜单面板
JMenuBar cdmb;//设置一级菜单按钮
JMenu cd1,cd2;//设置二级菜单按钮
JMenuItem cd1_1,cd1_2,cd1_3,cd1_4,cd1_5;//设置文本域
JTextArea wby;//设置滚动条
JScrollPane gdt;//设置欢迎面板
Huanying huanying;public static void main(String[] args) throwsException{//实例化当前类
Index index = newIndex();
}//自动执行
publicIndex(){//设置菜单面板
cdmb = newJMenuBar();//设置一级菜单按钮名称
cd1 = new JMenu("文件");
cd2= new JMenu("编辑");//设置二级菜单按钮名称
cd1_1 = new JMenuItem("新建");
cd1_2= new JMenuItem("打开");
cd1_3= new JMenuItem("保存");
cd1_4= new JMenuItem("另存为");
cd1_5= new JMenuItem("关闭");//添加监听事件
cd1_1.addActionListener(this);
cd1_1.setActionCommand("xinjian");
cd1_2.addActionListener(this);
cd1_2.setActionCommand("dakai");
cd1_3.addActionListener(this);
cd1_3.setActionCommand("baocun");
cd1_4.addActionListener(this);
cd1_4.setActionCommand("lingcunwei");//设置文本域
wby = newJTextArea();//设置滚动条
gdt = newJScrollPane(wby);//设置欢迎面板
huanying = newHuanying();
huanying.setSize(500, 100);//添加二级菜单到一级菜单
cd1.add(cd1_1);
cd1.add(cd1_2);
cd1.addSeparator();//添加横线
cd1.add(cd1_3);
cd1.add(cd1_4);
cd1.addSeparator();//添加横线
cd1.add(cd1_5);//添加一级菜单到菜单面板
cdmb.add(cd1);
cdmb.add(cd2);//添加面板到窗口
this.setJMenuBar(cdmb);this.add(gdt);this.add(huanying,BorderLayout.SOUTH);//设置窗口标题
this.setTitle("记事本");//设置窗口的宽高
this.setSize(500,350);//添加标题栏图片
this.setIconImage((new ImageIcon("image/1.jpg")).getImage());//设置窗口出现对于屏幕的位置
this.setLocation(100,100);//禁止拉大拉小//this.setResizable(false);//关闭窗口后释放资源
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//输出窗口
this.setVisible(true);
}public voidactionPerformed(ActionEvent e){/*** 新建文件*/
if(e.getActionCommand().equals("xinjian")){
System.out.println("新建文件");
}/*** 打开文件*/
if(e.getActionCommand().equals("dakai")){
System.out.println("打开文件");//打开文件的窗口
JFileChooser wjxz = new JFileChooser(); //创建文件窗口的对象
wjxz.setDialogTitle("打开文件"); //设置文件窗口标题
wjxz.showOpenDialog(null); //打开文件窗口风格默认 *******,跟另存为只是这里有区别
wjxz.setVisible(true); //显示文件窗口//得到用户选择的文件全路径
String wjlj =wjxz.getSelectedFile().getAbsolutePath();
FileReader wjl= null; //文件流
BufferedReader hcl = null; //缓冲流
try{
wjl= new FileReader(wjlj); //文件流方式打开文件
hcl = new BufferedReader(wjl); //缓冲流方式缓冲文件
String s = hcl.readLine(); //读取一行
String content = "";while(s!=null){
content+= (s+"\n");
s= hcl.readLine(); //继续读取一行
}
wby.setText(content);
}catch(Exception aa){
}finally{try{//关闭流,文件
wjl.close();
hcl.close();
}catch(Exception bb){
}
}
}/*** 另存为文件*/
if(e.getActionCommand().equals("lingcunwei")){
System.out.println("另存为文件");//另存为文件的窗口
JFileChooser wjxz = new JFileChooser(); //创建文件窗口的对象
wjxz.setDialogTitle("另存为文件"); //设置文件窗口标题
wjxz.showSaveDialog(null); //另存为文件窗口风格默认
wjxz.setVisible(true); //显示文件窗口//得到用户选择的文件全路径
String bclj =wjxz.getSelectedFile().getAbsolutePath();try{//保存文件
PrintStream pl = newPrintStream(bclj);
System.setOut(pl);
System.out.println(this.wby.getText());
pl.close();
}catch(Exception aa){
}
}
}
}class Huanying extendsJPanel{public voidpaint(Graphics g){//设置颜色
g.setColor(Color.red);//文字
g.setFont(new Font("宋体",Font.BOLD,10));
g.drawString("您好,欢迎使用记事本软件", 10, 10);
}
}