~~~
package draw.a8;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class Test extends JFrame implements ActionListener
{
JMenuBar cd;
JMenu cd1,cd2;
JMenuItem cdx2,cdx3;
JTextArea wby;
public static void main(String[] args)
{
Test lx=new Test();
}
Test()
{
cd=new JMenuBar();
cd1=new JMenu("文件(F)");
cd1.setMnemonic('F');
cd2=new JMenu("编辑(E)");
cd2.setMnemonic('E');
cdx2=new JMenuItem("打开",new ImageIcon("image/dk.jpg"));
cdx2.addActionListener(this);//this监听
cdx2.setActionCommand("open");//设置键值
cdx3=new JMenuItem("保存",new ImageIcon("image/bc.jpg"));
cdx3.addActionListener(this);
cdx3.setActionCommand("save");
wby=new JTextArea();
cd1.add(cdx2); cd1.add(cdx3);
cd.add(cd1); cd.add(cd2);
this.setJMenuBar(cd); this.add(wby);
ImageIcon tp1=new ImageIcon("image/jsb.jpg");
this.setIconImage(tp1.getImage());
this.setTitle("记事本");
this.setSize(400,300);
this.setLocation(300,280);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("open"))
{
//System.out.println("打开");
JFileChooser wjxz=new JFileChooser();//文件选择
wjxz.setDialogTitle("文件打开");//窗口标题
wjxz.showOpenDialog(null);//默认打开方式
wjxz.setVisible(true);
FileReader wjl=null;//文件流
BufferedReader hcl=null;//缓存流
try
{
String wjlj=wjxz.getSelectedFile().getAbsolutePath();
//这行的作用是 得到用户选择的全路径
//System.out.println(wjlj);
wjl=new FileReader(wjlj);
hcl=new BufferedReader(wjl);
String s="",zfc="";
//循环读取输入至TextArea这样写就不会浪费空间,而且快
while(true){
String content = hcl.readLine();
if(content==null) break;
wby.append(content);
wby.append("\n");
}
/*while((s=hcl.readLine())!=null)
{
zfc+=(s+"\n");
}
wby.setText(zfc);*/
}
catch(Exception aa){}
finally
{
try
{
wjl.close();
hcl.close();
}
catch (Exception e1) {}
}
}
else if(e.getActionCommand().equals("save"))
{
//System.out.println("保存");
JFileChooser ljxz=new JFileChooser();
ljxz.setDialogTitle("另存为");
ljxz.showSaveDialog(null);//默认保存格式
ljxz.setVisible(true);
try
{
String bclj=ljxz.getSelectedFile().getAbsolutePath();//全路径
PrintStream pl = new PrintStream(bclj);
System.setOut(pl);//不在控制台输出了
System.out.println(this.wby.getText());
}
catch(Exception aa){}
}
}
}
~~~
![](https://box.kancloud.cn/32c680a3653e38ac21820dbf13100c23_399x297.png)
- 书写心得
- 基础回顾
- 异常的处理
- equils方法
- 集合类
- ArrayList的遍历和添加
- ArrayList的删除插入
- 实例:食品库存管理
- HashMap
- 集合类的区别和选择
- 泛型和反射机制
- 图形化用户界面(GUI)
- JFrame容器
- 边界布局管理器
- 流式布局管理器
- 网格布局管理器
- Jpanel面板
- 文本框和标签
- 单选按钮和复选按钮
- 下拉列表框和滚动条
- 拆分窗口
- 聊天窗口
- 用户登录界面
- 记事本界面
- 线程
- 创建线程的方法
- 线程的优先级
- 线程的睡眠
- 线程的让步与阻塞
- 买票问题
- 生产消费问题
- IO流
- 字符流
- 字节流
- 缓冲流
- 数据流传输
- 转换流
- 空字符串区别
- Print流
- Object
- IO流补充
- 绘图技术和事件处理机制
- 绘图基础-绘制图形
- 绘图基础-绘制图像
- 绘图基础-绘制文字
- 事件处理-事件监听
- 事件处理-控件事件
- 事件处理-键盘事件
- 事件处理-鼠标事件
- 事件处理-窗口事件
- 记事本
- 坦克大战
- 阶段1
- 阶段2
- 阶段3
- 阶段4
- 阶段5
- 阶段6
- 阶段7
- 阶段8
- 阶段9
- 阶段10
- 阶段11
- 阶段12
- 阶段13
- 阶段14
- SQL Server 2005
- 简易学生管理系统
- 阶段(1)-显示
- 阶段(2)-查询
- 阶段(3)-添加
- 阶段(4)-删除
- 阶段(5)-修改
- 简易餐饮管理系统
- 阶段-01
- 阶段-02
- 阶段-03
- 阶段-04
- Index.java
- Login.java
- Main.java
- MyFont.java
- ImagePanel.java
- Conn.java
- Moxing.java
- 网络编程基础
- 互发信息(1)-传输
- 互发信息(2)-互发
- 互发信息(3)-GUI
- 互发信息(4)-对象流
- 网络聊天工具
- 阶段--01--界面
- Server
- Index
- Client
- Login
- Chat
- List