功能概述
这个Java Swing实现的记事本程序提供了以下主要功能:
-
基本文本编辑功能:创建、编辑和保存文本内容
-
文件操作:新建、打开、保存、另存为文件
-
格式设置:调整字体大小、颜色、背景色
-
查看选项:缩放功能(放大、缩小、默认)
-
辅助功能:插入日期/时间、自动换行、状态栏
-
帮助系统:包含问题反馈和百度搜索功能
-
多窗口支持:可以同时打开多个记事本窗口
核心技术
-
Swing组件:
-
JFrame作为主窗口 -
JTextArea作为文本编辑区域 -
JScrollPane实现滚动条 -
JMenuBar和JMenu实现菜单系统 -
JDialog用于对话框窗口
-
-
事件处理:
-
使用
ActionListener处理按钮和菜单项点击 -
使用
ItemListener处理下拉选择框变化
-
-
文件操作:
-
使用
FileDialog实现文件选择 -
使用
BufferedReader/BufferedWriter进行文件读写
-
-
其他技术:
-
JColorChooser实现颜色选择 -
Desktop类实现浏览器打开功能 -
JOptionPane显示各种对话框
-
核心组件
-
文本编辑区:
JTextArea是核心组件,所有文本编辑功能都围绕它实现 -
菜单系统:提供所有功能的入口,组织良好
-
对话框系统:包括文件对话框、颜色选择器等
-
辅助窗口:如问题反馈窗口、复制内容查看窗口等
对学习者的好处
-
Swing学习范例:
-
展示了完整的Swing应用程序结构
-
演示了各种Swing组件的使用方法
-
展示了组件布局和事件处理的实践
-
-
Java基础巩固:
-
文件I/O操作
-
事件处理机制
-
面向对象编程实践
-
-
项目结构学习:
-
展示了如何组织一个相对复杂的GUI应用程序
-
演示了功能模块的划分和组织
-
这个记事本程序是一个很好的Swing学习案例,涵盖了GUI编程的多个重要方面,对于初学者理解Java桌面应用开发非常有帮助。
看看效果:是不是有点想cmd命令框

这个是背景色设置功能,使用JColorChooser 实现颜色选择的

新建窗口功能:

分别是字体大小的调整和文字颜色的设置:

其余功能的截图我就不一样在这里分享,你们自己运行体验哈!!!
代码部分:因为代码是我在学习javaswing的时候自己写的,然后就是一些变量的名字随便起的不是很规范,希望你们谅解哈!
package 记事本;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Date;
public class text {
public static void baidu(){
try {
//String url = "http://www.baidu.com";
String url = "http://www.baidu.com";
java.net.URI uri = java.net.URI.create(url);
// 获取当前系统桌面扩展
java.awt.Desktop dp = java.awt.Desktop.getDesktop();
// 判断系统桌面是否支持要执行的功能
if (dp.isSupported(java.awt.Desktop.Action.BROWSE)) {
//File file = new File("D:\\aa.txt");
//dp.edit(file);// 编辑文件
dp.browse(uri);// 获取系统默认浏览器打开链接
// dp.open(file);// 用默认方式打开文件
// dp.print(file);// 用打印机打印文件
}
} catch (java.lang.NullPointerException e) {
// 此为uri为空时抛出异常
e.printStackTrace();
} catch (java.io.IOException e) {
// 此为无法获取系统默认浏览器
e.printStackTrace();}
}
public static void run(){
JFrame jf=new JFrame("记事本");
jf.setIconImage(new ImageIcon("C:\\Users\\阿力木江\\Desktop\\图标.jpg").getImage());//非常重要
jf.setBounds( 700,100,600,800 );
JTextArea jt=new JTextArea("XXXXX\n" +
"记事本",1000,1000);
String al=jt.getText();
if (al.equals( "/cls" )){
jt.setText( "" );
}
jt.setFont( new Font( "黑体",Font.BOLD,30 ) );
jt.setLineWrap( true );//自动换行
JScrollPane js=new JScrollPane(jt,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jf.add( js );
//JScroPane用法是这样的,一定要记得
// 而且不要写jf.add(jt);
JMenuBar mb=new JMenuBar();
jf.setJMenuBar( mb );
JMenu m=new JMenu("文件(F)");
JMenuItem i=new JMenuItem("新建窗口 Ctrl+Shift+N");
m.add( i );
JMenuItem i1=new JMenuItem("新建 Ctrl+N");
m.add( i1 );
JMenuItem i2=new JMenuItem("保存(S) Ctrl+S");
m.add( i2 );
JMenuItem i3=new JMenuItem("另存为(A) Ctrl+Shift+N");
m.add( i3 );
JMenuItem i4=new JMenuItem("打开(O) open");
m.add( i4 );
JMenuItem k=new JMenuItem( "退出");
m.add( k );
JMenu m1=new JMenu("编辑(E)");
JMenuItem e1=new JMenuItem("复制");
m1.add( e1 );
m1.add( new JMenuItem("粘贴") );
m1.add( new JMenuItem("转到") );
JMenuItem ee=new JMenuItem("全选");
m1.add( ee );
JMenu m2=new JMenu("格式(Q)");
JMenu t1=new JMenu("颜色");
JMenuItem b=new JMenuItem("红色");
JMenuItem b1=new JMenuItem("绿色");
JMenuItem b2=new JMenuItem("蓝色");
JMenuItem b3=new JMenuItem("紫色");
JMenuItem b4=new JMenuItem("浅蓝色");
JMenuItem b5=new JMenuItem("澄色");
JMenuItem b6=new JMenuItem("浅紫色");
JMenuItem b7=new JMenuItem("黄色");
JMenuItem b8=new JMenuItem("黑色");
JMenuItem b9=new JMenuItem("白色");
t1.add( b );
t1.add( b1 );
t1.add( b2 );
t1.add( b3 );
t1.add( b4 );
t1.add( b5 );
t1.add( b6 );

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



