使用javaswing图形化界面来写一个记事本程序,超牛逼!!!

功能概述

这个Java Swing实现的记事本程序提供了以下主要功能:

  1. 基本文本编辑功能:创建、编辑和保存文本内容

  2. 文件操作:新建、打开、保存、另存为文件

  3. 格式设置:调整字体大小、颜色、背景色

  4. 查看选项:缩放功能(放大、缩小、默认)

  5. 辅助功能:插入日期/时间、自动换行、状态栏

  6. 帮助系统:包含问题反馈和百度搜索功能

  7. 多窗口支持:可以同时打开多个记事本窗口

核心技术

  1. Swing组件

    • JFrame 作为主窗口

    • JTextArea 作为文本编辑区域

    • JScrollPane 实现滚动条

    • JMenuBar 和 JMenu 实现菜单系统

    • JDialog 用于对话框窗口

  2. 事件处理

    • 使用ActionListener处理按钮和菜单项点击

    • 使用ItemListener处理下拉选择框变化

  3. 文件操作

    • 使用FileDialog实现文件选择

    • 使用BufferedReader/BufferedWriter进行文件读写

  4. 其他技术

    • JColorChooser 实现颜色选择

    • Desktop 类实现浏览器打开功能

    • JOptionPane 显示各种对话框

核心组件

  1. 文本编辑区JTextArea 是核心组件,所有文本编辑功能都围绕它实现

  2. 菜单系统:提供所有功能的入口,组织良好

  3. 对话框系统:包括文件对话框、颜色选择器等

  4. 辅助窗口:如问题反馈窗口、复制内容查看窗口等

对学习者的好处

  1. Swing学习范例

    • 展示了完整的Swing应用程序结构

    • 演示了各种Swing组件的使用方法

    • 展示了组件布局和事件处理的实践

  2. Java基础巩固

    • 文件I/O操作

    • 事件处理机制

    • 面向对象编程实践

  3. 项目结构学习

    • 展示了如何组织一个相对复杂的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 );
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@程序员ALMJ

打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值