记事本
记事本实例中使用了以下知识
1、ui界面
2、io流
3、事件监听
4、图形
5、JFileChooser 类,用于打开文件,另存为文件。弹出文件选择器对话框

学习重点:JFileChooser,有很多方法,参考下面的方法对照表

//记事本
//记事本实例中使用了以下知识
//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 implements ActionListener{ //设置菜单面板
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) throws Exception{
//实例化当前类
Index index = new Index(); } //自动执行
public Index(){ //设置菜单面板
cdmb = new JMenuBar(); //设置一级菜单按钮名称
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 = new JTextArea(); //设置滚动条
gdt = new JScrollPane(wby); //设置欢迎面板
huanying = new Huanying();
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 void actionPerformed(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 = new PrintStream(bclj);
System.setOut(pl);
System.out.println(this.wby.getText());
pl.close();
}
catch(Exception aa){ } } } } class Huanying extends JPanel{
public void paint(Graphics g){
//设置颜色
g.setColor(Color.red);
//文字
g.setFont(new Font("宋体",Font.BOLD,10));
g.drawString("您好,欢迎使用记事本软件", 10, 10);
}
}

JFileChooser方法对照表(从手册上复制过来的)

方法摘要
 boolean accept(File f)
          如果应该显示该文件,则返回 true。
 void addActionListener(ActionListener l)

          向文件选择器添加一个 ActionListener
 void addChoosableFileFilter(FileFilter filter)

          向用户可选择的文件过滤器列表添加一个过滤器。
 void approveSelection()

          用户单击 Approve 按钮(默认情况下标有 "Open" 或 "Save")时由 UI 调用此方法。
 void cancelSelection()

          用户选择 Cancel 按钮时由 UI 调用此方法。
 void changeToParentDirectory()

          将要设置的目录更改为当前目录的父级。
protected  JDialog createDialog(Component parent)

          创建并返回包含 this 的新 JDialog,在
parent 窗体中的 parent 上居中。
 void ensureFileIsVisible(File f)

          确保指定的文件是可见的,不是隐藏的。
protected
 void
fireActionPerformed(String command)

          通知对此事件类型感兴趣的所有侦听器。
 FileFilter getAcceptAllFileFilter()

          返回 AcceptAll 文件过滤器。
 AccessibleContext getAccessibleContext()

          获取与此 JFileChooser 关联的 AccessibleContext。
 JComponent getAccessory()

          返回 accessory 组件。
 ActionListener[] getActionListeners()

          返回在此文件选择器上注册的所有操作侦听器的数组。
 int getApproveButtonMnemonic()

          返回确认按钮的助记符。
 String getApproveButtonText()

          返回 ApproveButton 中的 FileChooserUI
内使用的文本。
 String getApproveButtonToolTipText()

          返回 ApproveButton 中使用的工具提示文本。
 FileFilter[] getChoosableFileFilters()

          获得用户可选择的文件过滤器列表。
 boolean getControlButtonsAreShown()

          返回 controlButtonsAreShown 属性的值。
 File getCurrentDirectory()

          返回当前目录。
 String getDescription(File f)

          返回文件描述。
 String getDialogTitle()

          获得 JFileChooser 的标题栏中所显示的字符串。
 int getDialogType()

          返回此对话框的类型。
 boolean getDragEnabled()

          获得 dragEnabled 属性的值。
 FileFilter getFileFilter()

          返回当前选择的文件过滤器。
 int getFileSelectionMode()

          返回当前的文件选择模式。
 FileSystemView getFileSystemView()

          返回文件系统视图。
 FileView getFileView()

          返回当前的文件视图。
 Icon getIcon(File f)

          返回此文件或文件类型的图标,这取决于系统。
 String getName(File f)

          返回文件名。
 File getSelectedFile()

          返回选中的文件。
 File[] getSelectedFiles()

          如果将文件选择器设置为允许选择多个文件,则返回选中文件的列表。
 String getTypeDescription(File f)

          返回文件类型。
 FileChooserUI getUI()

          获得实现此组件 L&F 的 UI 对象。
 String getUIClassID()

          返回一个指示 L&F 类名的字符串,该类负责呈现此组件。
 boolean isAcceptAllFileFilterUsed()

          返回是否使用 AcceptAll FileFilter
 boolean isDirectorySelectionEnabled()

          方便的调用,可根据当前的文件选择模式确定目录是否为可选择的。
 boolean isFileHidingEnabled()

          如果在文件选择器中不显示隐藏文件,则返回 true;否则返回 false。
 boolean isFileSelectionEnabled()

          方便的调用,可根据当前的文件选择模式确定文件是否为可选择的。
 boolean isMultiSelectionEnabled()

          如果可以选择多个文件,则返回 true。
 boolean isTraversable(File f)

          如果可以返回该文件(目录),则返回 true。
protected  String paramString()

          返回此 JFileChooser 的字符串表示形式。
 void removeActionListener(ActionListener l)

          从文件选择器中移除一个 ActionListener
 boolean removeChoosableFileFilter(FileFilter f)

          从用户可选择的文件过滤器列表中移除一个过滤器。
 void rescanCurrentDirectory()

          通知 UI 重新扫描当前目录的文件列表。
 void resetChoosableFileFilters()

          将可选择文件过滤器列表重置为其开始状态。
 void setAcceptAllFileFilterUsed(boolean b)

          确定是否将 AcceptAll FileFilter
用作可选择过滤器列表中一个可用选项。
 void setAccessory(JComponent newAccessory)

          设置 accessory 组件。
 void setApproveButtonMnemonic(char mnemonic)

          使用字符设置确认按钮的助记符。
 void setApproveButtonMnemonic(int mnemonic)

          使用数值键代码设置确认按钮的助记符。
 void setApproveButtonText(String approveButtonText)

          设置 FileChooserUI 中的 ApproveButton
内使用的文本。
 void setApproveButtonToolTipText(String toolTipText)

          设置 ApproveButton 中使用的工具提示文本。
 void setControlButtonsAreShown(boolean b)

          设置属性,指示在文件选择器中是否显示 approvecancel 按钮。
 void setCurrentDirectory(File dir)

          设置当前目录。
 void setDialogTitle(String dialogTitle)

          设置显示在 JFileChooser 窗口标题栏的字符串。
 void setDialogType(int dialogType)

          设置此对话框的类型。
 void setDragEnabled(boolean b)

          设置 dragEnabled 属性,要在此组件上启用自动拖动处理(drag 和 drop
的第一部分),此属性必须为 true
 void setFileFilter(FileFilter filter)

          设置当前文件过滤器。
 void setFileHidingEnabled(boolean b)

          设置是否实现文件隐藏。
 void setFileSelectionMode(int mode)

          设置
JFileChooser,以允许用户只选择文件、只选择目录,或者可选择文件和目录。
 void setFileSystemView(FileSystemView fsv)

          设置为访问和创建文件系统资源(如查找软驱和获得根驱动器列表),JFileChooser
所使用的文件系统视图。
 void setFileView(FileView fileView)

          设置用于检索 UI 信息的文件视图,如表示文件的图标或文件的类型描述。
 void setMultiSelectionEnabled(boolean b)

          设置文件选择器,以允许选择多个文件。
 void setSelectedFile(File file)

          设置选中的文件。
 void setSelectedFiles(File[] selectedFiles)

          如果将文件选择器设置为允许选择多个文件,则设置选中文件的列表。
protected
 void
setup(FileSystemView view)

          执行公共的构造方法初始化和设置。
 int showDialog(Component parent,
String approveButtonText)


          弹出具有自定义 approve 按钮的自定义文件选择器对话框。
 int showOpenDialog(Component parent)

          弹出一个 "Open File" 文件选择器对话框。
 int showSaveDialog(Component parent)

          弹出一个 "Save File" 文件选择器对话框。
 void updateUI()

          将 UI 属性重置为当前的外观值。

java 记事本 - 实例的更多相关文章

  1. JAVA RMI 实例

    下面我将介绍一个完整的实例,让初学者能快速体验RMI的功用. 分为以下四个步骤 1. 创建远程接口及声明远程方法(HelloInterface.java)2. 实现远程接口及远程方法(继承Unicas ...

  2. Java多线程-实例解析

    Java多线程实例 3种实现方法Java中的多线程有三种实现方式:1.继承Thread类,重写run方法.Thread本质上也是一个实现了Runnable的实例,他代表一个线程的实例,并且启动线程的唯 ...

  3. Thrift入门初探--thrift安装及java入门实例

    什么是thrift? 简单来说,是Facebook公布的一款开源跨语言的RPC框架. 那么问题来了. 什么是RPC框架? RPC全称为Remote Procedure Call,意为远程过程调用. 假 ...

  4. [Java初探实例篇02]__流程控制语句知识相关的实例练习

    本例就流程控制语句的应用方面,通过三个练习题来深入学习和巩固下学习的流程控制语句方面的知识,设计到,if条件判断语句,switch多分支语句,for循环语句及其嵌套多层使用,while循环语句. 练习 ...

  5. 【thrift】thrift入门初探--thrift安装及java入门实例

    转载:https://www.cnblogs.com/fingerboy/p/6424248.html 公司的一些平台服务框架底层封装了thrift提供服务,最近项目不是很紧,于是研究了一下,刚刚入门 ...

  6. Redis缓存Mysql模拟用户登录Java实现实例[www]

    Redis缓存Mysql模拟用户登录Java实现实例 https://jingyan.baidu.com/article/09ea3ede1dd0f0c0aede3938.html redis+mys ...

  7. JAVA记事本的图形用户界面应用程序含过滤

    JAVA记事本的图形用户界面应用程序 过滤 题目简介: 整体分析: 实验代码: package note; import java.awt.EventQueue; import java.awt.ev ...

  8. JAVA记事本的图形用户界面应用程序含加密

    JAVA记事本的图形用户界面应用程序 加密 题目简介: 整体分析: 实验代码: import java.awt.EventQueue; import java.awt.event.ActionEven ...

  9. JAVA记事本的图形用户界面应用程序

    JAVA记事本的图形用户界面应用程序 整体分析: 代码实现: import java.awt.EventQueue; import java.awt.event.ActionEvent; import ...

随机推荐

  1. ASP.NET MVC中多种ActionResult用法总结

    最近一段时间做了个ASP.NET MVC4.0的项目,项目马上就要结束了,今天忙里偷闲简单总结一下心得: 1. 如果Action需要有返回值的话,必须是ActionResult的话,可以返回一个Emp ...

  2. Java方法调用中的别名处理

    将一个对象传递到方法内部时,也会产生别名现象.//: PassObject.java// Passing objects to methods can be a bit tricky62class L ...

  3. 由于OCR文件损坏造成Oracle RAC不能启动的现象和处理方法

    v$cluster_interconnects 集群节点间通信使用的IP地址 错误信息 使用了公网进行连接 SQL> select * from v$cluster_interconnects; ...

  4. Android技术积累:开发规范

    转载自Keegan小钢 http://keeganlee.me/post/android/20150709 书写规范 1. 编码方式统一用UTF-8. Android Studio默认已是UTF-8, ...

  5. 网页闯关游戏(riddle webgame)--H5刮刮卡的原理和实践

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. 对于刮刮卡, 想必大家都很熟悉, 也很喜 ...

  6. github最简单的操作方法

    其实,说实话,到目前为止,我还没有研究透那些gitbush上面的命令,所以,往github上面上传自己的文件,我采用最简单的操作方式.嘻嘻.下面,将为大家讲述一下. 首先,要在github上面注册新用 ...

  7. javascript设计模式之观察者模式

    观察者模式又称发布/订阅模式   publish/subscribe 它是一种一对多的关系,让多个观察者对象同时监听某一主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得他们能够自动 ...

  8. iOS 动画

    图层树.寄宿图以及图层几何学(一)图层的树状结构 技术交流新QQ群:414971585 巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克 Core Animation其实是一个令人误解的命 ...

  9. python之列表常见操作

    list = [1,2,3,4,5,6,7,8,9,0,0,0,0,0] listSet = list.set(list)#将列表中的数据进行去重处理 此时listSet中的数据为[1,2,3,4,5 ...

  10. 集成Visual Studio/MSBuild的开发/发布流程和 FIS3

    谁不想让自己的网站速度更快?为此需要多方面的优化,但优化又会增加开发工作量.Fis3 是很不错的前端优化工具,能够让前端的优化变得自动方便,解决前述问题.Fis3是百度开发的,开源的,在国内比较六流行 ...