<pre class="java" name="code" snippet_file_name="blog_20160312_1_2909067" code_snippet_id="1607488">//主要的就是刚学习Java中的GUI和IO流,弄个记事本玩一玩。
public class Notepad extends JFrame implements ActionListener{
JMenuBar jmb; //菜单栏
JMenu jm; //菜单
JMenuItem jmi1,jmi2; //菜单项
JTextArea jta; //用来写文字的文本域
JScrollPane jsp; // 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口
public static void main(String[] args) {
Notepad np = new Notepad();
}
public Notepad(){
jmb = new JMenuBar();
jm = new JMenu("菜单(f)");
jm.setMnemonic('f'); //创建快捷方式Alt+f
jmi1 = new JMenuItem("打开");
jmi1.addActionListener(this);
jmi1.setActionCommand("open");
jmi2 = new JMenuItem("保存");
jmi2.addActionListener(this);
jmi2.setActionCommand("save");
jta = new JTextArea();
jsp = new JScrollPane(jta);
jm.add(jmi1);
jm.add(jmi2);
jmb.add(jm);
this.setJMenuBar(jmb);
this.add(jsp);
this.setSize(400, 300);
this.setLocation(300, 300);
this.setTitle("记事本");
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("open")){
JFileChooser jf = new JFileChooser(); //JFileChooser 为用户选择文件提供了一种简单的机制
jf.showOpenDialog(this); //弹出一个 "Open File" 文件选择器对话框
jf.setToolTipText("打开"); //注册要在工具提示中显示的文本
String path = jf.getSelectedFile().getAbsolutePath(); //返回选中的文件的绝对路径
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
StringBuffer stb = new StringBuffer();
String str = "";
while((str = br.readLine())!=null){ //一行一行的循环读取数据
stb.append(str+"\r\n");
}
jta.setText(stb.toString()); //一定要调用toString方法
br.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}else if(e.getActionCommand().equals("save")){
JFileChooser jf = new JFileChooser();
jf.showSaveDialog(this); //弹出一个 "Save File" 文件选择器对话框
jf.setToolTipText("保存");
String path = jf.getSelectedFile().getAbsolutePath();
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path)));
bw.write(jta.getText());
bw.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
}
一个简单的Java IO流写的记事本
最新推荐文章于 2023-02-26 16:26:45 发布