1 import java.awt.*;2 import java.awt.event.*;3 import java.io.*;4 classMyMenu5 {6 //定义该窗体所需的组件,方便其他函数引用
7 privateFrame f;8 private Button btn; //按钮
9 privateButton btn1;10 private Label label; //标签
11 private TextArea ta ; //文本区域
12 private Menu fileMenu; //菜单
13 privateMenuBar bar;14 private MenuItem openItem,saveItem,closeItem; //子菜单
15
16 private FileDialog openDia,saveDia; //文件对话框
17 private File file; //文件18 //构造器
19 MyMenu(){20 init();21 }22 public voidinit(){23 f = new Frame("我的窗体及菜单框架");24 /*(所有静态属性设置)*/
25 //对窗体进行基本设置
26 f.setBounds(100,50,1200,1000);27 f.setLayout(newFlowLayout());28 f.setBackground(Color.gray);29 //组件(自定义)
30 btn = new Button("退出");31 btn1 = new Button("按钮1");32 label = new Label("这是一个文本",Label.CENTER);33 ta = new TextArea("test",30,70,1);//最后一个参数设置为显示滚动条,1显示垂直滚动条,2显示横向滚动条,0全部显示。
34
35 bar = newMenuBar();36 fileMenu = new Menu("文件");37 //定义菜单项
38 openItem = new MenuItem("打开");39 saveItem = new MenuItem("保存");40 closeItem = new MenuItem("退出");41 //将菜单项添加进菜单
42 fileMenu.add(openItem);43 fileMenu.add(saveItem);44 fileMenu.addSeparator();45 fileMenu.add(closeItem);46 //将菜单已添加进菜单栏
47 bar.add(fileMenu);48 f.setMenuBar(bar);49 //添加文件对话框
50 openDia = new FileDialog(f,"我要打开",FileDialog.LOAD);51 saveDia = new FileDialog(f,"我要保存",FileDialog.SAVE);52 //组件属性设置
53 label.setBackground(Color.pink);54 label.setFont(new Font("Dialog", Font.BOLD, 12));55 label.setSize(300,200);56 //将组件添加到frame中
57 f.add(label);58 f.add(ta);59 f.add(btn);60 f.add(btn1);61 //加载窗体事件(所有响应事件)
62 myEvent();63
64 //显示窗体
65 f.setVisible(true);66 }67
68 private voidmyEvent(){69 /*规则:70 xxxListener(new xxxAdapter())71 xxxEvent e72 */
73 //窗体关闭事件
74 f.addWindowListener(newWindowAdapter()75 {76 public voidwindowClosing(WindowEvent e)77 {78 System.exit(0);79 }80 });81 //按钮响应事件
82 btn.addActionListener(newActionListener(){83 public voidactionPerformed(ActionEvent e)84 {85 //按钮响应
86 System.out.println("退出,按钮干的");87 System.exit(0);88 }89 });90 //按钮1响应事件
91 btn1.addActionListener(newActionListener(){92 public voidactionPerformed(ActionEvent e)93 {94 //获取文本内容并显示
95 String taContent =ta.getText();96 label.setText(taContent);97 }98 });99 //菜单事件:添加保存活动监听,
100 saveItem.addActionListener(newActionListener()101 {102
103 public voidactionPerformed(ActionEvent e)104 {105 //保存就是直接开启对话框106 //if(file==null)107 //{
108 saveDia.setVisible(true);109
110 String dirPath =saveDia.getDirectory();111 String fileName =saveDia.getFile();112 if(dirPath==null || fileName==null)113 return;114 file = newFile(dirPath,fileName);115 //}
116
117 try
118 {119 BufferedWriter bufw = new BufferedWriter(newFileWriter(file));120
121 String text =ta.getText();122
123 bufw.write(text);124 //bufw.flush();
125 bufw.close();126 }127 catch(IOException ex)128 {129 throw newRuntimeException();130 }131
132 }133 });134
135
136 openItem.addActionListener(newActionListener()137 {138 public voidactionPerformed(ActionEvent e)139 {140 openDia.setVisible(true);141 String dirPath =openDia.getDirectory();142 String fileName =openDia.getFile();143 //System.out.println(dirPath+"..."+fileName);
144 if(dirPath==null || fileName==null)145 return;146
147 ta.setText("");148 file = newFile(dirPath,fileName);149
150 try
151 {152 BufferedReader bufr = new BufferedReader(newFileReader(file));153
154 String line = null;155
156 while((line=bufr.readLine())!=null)157 {158 ta.append(line+"\r\n");159 }160
161 bufr.close();162 }163 catch(IOException ex)164 {165 throw new RuntimeException("读取失败");166 }167
168
169 }170 });171
172
173
174
175
176 closeItem.addActionListener(newActionListener()177 {178 public voidactionPerformed(ActionEvent e)179 {180 System.exit(0);181 }182 });183 }184
185 public static voidmain(String[] args){186 newMyMenu();187 }188 }