在Java编程中,"JAVA记事本程序"是一种利用Swing库创建的简单文本编辑器,它主要应用于教学和小型项目中,以便于理解和实践基础的GUI编程。该程序实现了记事本的基本功能,如文本输入、保存、打开和清空等,同时使用了多个组件如JFrame、JTextArea、JButton等来构建用户界面。 首先,开发这个程序时,开发者导入了必要的Java库,如java.awt(用于图形用户界面)、java.awt.event(处理事件)以及javax.swing(Swing组件)。核心类`MyNotepad`实现了`ActionListener`接口,这是为了让程序能够响应用户的操作。 在类中,我们定义了多个私有变量,如JFrame对象(frame)用于显示主窗口,JTextArea(jta)作为文本输入区域,以及按钮jb、jtf、jt和jbt,分别对应“打开”、“复制”、“粘贴”和“清除”等操作。此外,还包含了Iconic对象,用于设置按钮的图标,以及几个字符串变量用于存储和传递信息。 `actionPerformed(ActionEvent e)`方法是ActionListener接口的主要实现部分,当用户点击按钮时,会触发这个方法。在这个方法中,根据用户选择的不同操作命令(comm),执行相应的逻辑。例如,如果用户点击“打开”按钮,会检查当前是否已有一个打开的记事本,如果没有则创建新的记事本窗口,如果已有,则通过JFileChooser让用户选择文件进行打开。 具体流程如下: 1. 检查当前窗口标题是否为"¼±",如果不是,表明需要创建一个新的记事本。 2. 如果记事本尚未关闭(flag为true),则调用write()方法(可能用于保存当前文本),然后调用newNew()创建新窗口。 3. 如果记事本已经关闭(flag为false),则使用JFileChooser让用户选择文件,如果用户选择了一个文件,获取文件对象并进行后续操作。 这个JAVA记事本程序是一个基础的GUI应用程序,展示了如何在Java中使用Swing库来构建简单的文本编辑器,包括文件操作和用户交互。对于初学者来说,这是一个很好的学习和实践Java GUI编程的案例。
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class MyNotepad implements ActionListener{
private JFrame frame=new JFrame("新记事本");
private JTextArea jta=new JTextArea();
private String result="";
private boolean flag=true;
private File f;
private JButton jb=new JButton("开始");
private JTextField jtf=new JTextField(15);
private JTextField jt=new JTextField(15);
private JButton jbt=new JButton("替换为");
private JButton jba=new JButton("全部替换");
private Icon ic=new ImageIcon("D:\\java课堂笔记\\GUI\\11.gif");
private String value;
private int start=0;
private JFrame jf=new JFrame("查找");
private JFrame jfc=new JFrame("替换");
@Override
public void actionPerformed(ActionEvent e) {
String comm=e.getActionCommand();
if("新建".equals(comm)){
if(!(frame.getTitle().equals("新记事本"))){
if(!flag){
write();
}else{
JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");
int returnVal = jfc.showDialog(null,"保存为");
if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
flag=false;
write();
}
}
}else if(!(jta.getText().isEmpty())){
JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");
int returnVal = jfc.showDialog(null,"保存为");
if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
flag=false;
write();
newNew();
}
}else{
newNew();
}
}else if("打开".equals(comm)){
JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");
jfc.setDialogType(JFileChooser.OPEN_DIALOG);
int returnVal = jfc.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
frame.setTitle(f.getName());
result=read();
剩余7页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦