一、知识点补充【在此次示例代码上显示的关键用法】

 知识点

1、JMenuBar:菜单栏的容器,通常添加到JFrame的顶部。

关键用法:

  • add: 添加菜单到菜单栏

2、JMenu:菜单条目(“文件” “编辑” 等),继承自JMenuItem,可添加到JMenuBar中

关键用法:

  • add:添加菜单项

3、JMenuItem:菜单项(“新建” “复制” 等),可添加到JMenu中

注意:JMenuBar默认流式布局

4、JScrollPanel 是Java Swing中的一个组件,用于为其他组件提供滚动功能,只有组件内容超出显示区域时,它就会自动添加水平或者垂直滚动条,使用户可以查看完整内容。

5、JTextPanel 是Java Swing中的高级文本编辑组件,继承自JEditorPane,支持文本编辑,允许设置文本的字体、颜色、样式,并可嵌入图像、超链接等元素,合适创建需要格式化显示的文本界面。

6、JFileChooser : 文件选择对话框,用于打开和保存文件

7、FileNameExtensionFilter 是Java Swing库中的一个类,用于在文件选择对话框中过滤和显示特定类型的文件,它只允许用户看到符合指定文件扩展名的文件,从而简化文件选择过程。

核心构造方法:FileNameExtensionFilter(String description,String extensions)

description:文件类型的描述文本(“文本文件”等)

extensions:允许的文件扩展名数组(“text” “pdf”等)

文本编辑器大概内容

①需要一个窗体 

②增加一组菜单: 打开 保存 等功能

③窗体内设置一个文本域 用于显示和编辑文本 

④扩展实现:字体修改,文本尺寸修改 缩放等等

二、代码示例

package daytoday.lfx250710;import javax.swing.*;public class TextEdit {public void showUI(){JFrame jf = new JFrame();jf.setTitle("文本编辑器");jf.setSize(400, 300);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setLocationRelativeTo(null);//菜单占用标题栏空间JMenuBar jmb = new JMenuBar();//菜单栏JMenu jm = new JMenu("文件");//菜单JMenu jm1 = new JMenu("编辑");JMenu jm2 = new JMenu("查看");JMenuItem newJmi = new JMenuItem("新建");//菜单项JMenuItem openJmi = new JMenuItem("打开");JMenuItem saveJmi = new JMenuItem("保存");JMenuItem exitJmi = new JMenuItem("退出");jm.add(newJmi);jm.add(openJmi);jm.add(saveJmi);jm.add(exitJmi);jmb.add(jm);jmb.add(jm1);jmb.add(jm2);//将菜单栏设置到窗体上jf.setJMenuBar(jmb);//文本域JTextPane jtp = new JTextPane();JScrollPane jsp = new JScrollPane(jtp);//滑动面板jf.add(jsp);jf.setVisible(true);TextListener tl = new TextListener();openJmi.addActionListener(tl);saveJmi.addActionListener(tl);exitJmi.addActionListener(tl);tl.jtp = jtp;}public static void main(String[] args) {TextEdit textEdit = new TextEdit();textEdit.showUI();}
}
package daytoday.lfx250710;import javax.imageio.IIOException;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import javax.swing.filechooser.FileNameExtensionFilter;public class TextListener implements ActionListener {JTextPane jtp;JFileChooser jfc = new JFileChooser();@Overridepublic void actionPerformed(ActionEvent e) {String ac = e.getActionCommand();System.out.println("ac" + ac);if (ac.equals("打开")){//文件名过滤FileNameExtensionFilter filter = new FileNameExtensionFilter("文本文件", "txt");jfc.setFileFilter( filter);//设置过滤器//文件选择器/*showOpenDialog()方法显示 打开文件 的对话框参数null表示对话框的父组件为null (即显示会话框在屏幕中间)*/int showOpenDialog = jfc.showOpenDialog(null);if (showOpenDialog == JFileChooser.APPROVE_OPTION){//处理用户选择的文件File selectedFile = jfc.getSelectedFile();//获取用户选择的文件String path = selectedFile.getPath();//获取文件路径System.out.println("path" + path);try {//读取文件FileReader frd = new FileReader(selectedFile);BufferedReader brd = new BufferedReader(frd);String line;String text = "";while ((line = brd.readLine()) != null) {text += line + "\n";}jtp.setText(text);}catch (IOException ioe){ioe.printStackTrace();}}}else if(ac.equals("新建")){} else if (ac.equals("保存")) {}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/88551.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/88551.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/88551.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux自动化构建工具(一)

🎁个人主页:工藤新一 🔍系列专栏:C面向对象(类和对象篇) 🌟心中的天空之城,终会照亮我前方的路 🎉欢迎大家点赞👍评论📝收藏⭐文章 文章目录Li…

目标检测流程图绘制

目标检测流程图绘制作为一个长期科研的苦命人,我一般采用Processon。 一、目标检测流程图绘制的 “量身定制” 体验 Processon 的绘图元素库对目标检测领域极度友好,从基础模块到复杂结构都能精准匹配:   核心组件一键调用:在右…

GitHub 趋势日报 (2025年07月09日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图970genai-toolbox780WebAgent650rustfs451prompt-eng-interactive-tutorial246ai-a…

多云环境下的成本管理挑战与对策 ——资源碎片化治理与华为CloudMatrix破局之道

一、危机:多云成本失控已成企业“隐形杀手”成本超支概率激增据Gartner 2024报告,采用多云策略的企业成本超支概率比单云企业高47%,主因资源碎片化导致的闲置浪费和管控失效。触目惊心的数据:73%企业云成本占营收超20%&#xff0c…

Linux的基础I/O

目录 1、理解“文件” 1.1 狭义理解 1.2 广义理解 1.3 文件操作的归类认知 1.4 系统角度 2、回顾C文件接口 2.1 文件的打开与关闭 2.2 文件的读写函数 2.3 stdin & stdout & stderr 3、系统文件I/O 3.1 一种传标志位的方式 3.2 文件的系统调用接口 3.2.1 o…

广告匹配策略的智能化之路:人工智能大模型的方法和步骤

摘要 广告匹配策略是指根据用户的需求和偏好,向用户推荐最合适的广告的方法。广告匹配策略的优化是数字化营销的核心问题之一,也是提升广告效果和收益的关键因素。本文介绍了如何利用人工智能大模型,从数据分析、广告推荐、策略优化、效果评…

飞算JavaAI:重塑Java开发的“人机协同“新模式

引言 在Java开发领域,“效率"与"质量"的平衡始终是开发者面临的核心挑战——重复编码消耗精力、复杂业务易出漏洞、老系统重构举步维艰。飞算JavaAI的出现,并非简单地用AI替代人工,而是构建了一套"AI处理机械劳动&#…

运行ssh -T git@github.com报错

运行ssh -T gitgithub.com报错 no such identity: /root/.ssh/id_rsa: No such file or directory gitssh.github.com: Permission denied (publickey). 如果我用的是ed25519而非rsa,有id_ed25519 则需要打开~/.ssh/config检查一下是否写错了 vim ~/.ssh/config 然后…

20250710-2-Kubernetes 集群部署、配置和验证-网络组件存在的意义?_笔记

一、网络组件的作用1. 部署网络组件的目的核心功能:执行kubectl apply -f calico.yaml命令的主要目的是为Kubernetes集群部署网络组件必要性:解决Pod间的跨节点通信问题建立集群范围的网络平面,使所有Pod处于同一网络…

【牛客刷题】dd爱科学1.0

文章目录 一、题目介绍1.1 题目描述1.2 输入描述:1.3 输出描述:1.4 示例1二、解题思路2.1 核心策略2.2 算法流程2.3 正确性证明三、算法实现四、关键步骤解析五、复杂度分析六、正确性验证七、算法对比7.1 暴力搜索法7.2 动态规划7.3 三种解法对比分析一、题目介绍 1.1 题目描…

跑步-Java刷题 蓝桥云课

目录 题目链接 题目 解题思路 代码 题目链接 竞赛中心 - 蓝桥云课 题目 解题思路 用数组记录每个月有多少天,再使用一个int型变量记录是星期几,遍历即可 代码 import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public stat…

Qt常用控件之QWidget(二)

Qt常用控件(二)1.window frame2.windowTitle3.windowIcon🌟🌟hello,各位读者大大们你们好呀🌟🌟 🚀🚀系列专栏:【Qt的学习】 📝📝本篇…

飞算Java AI:专为 Java 开发者打造的智能开发引擎

目录 一,核心功能 1,智能编码(AI Coding) 2,AI 驱动测试(AI Testing) 3,智能运维(AIOps) 4,工程化支持 二、注册与上手:3 分钟快…

基于开源AI大模型AI智能名片S2B2C商城小程序源码的私域流量新生态构建

摘要:私域流量并非新生概念,企业持续构建和经营“企业 - 客户”关系是其持续存在的关键,且会随时代发展自我完善迭代。本文探讨了开源AI大模型AI智能名片S2B2C商城小程序源码在私域流量领域的应用价值。通过分析私域流量发展现状与挑战&#…

用 ELK+Filebeat 提高50%问题排查效率,这套方案实测有效!

摘要 在中大型系统中,日志的分布常常让问题排查变得异常痛苦:每次出错都要登录一堆服务器、翻一堆文本,还不一定能找到关键线索。为了解决这个问题,ELK(Elasticsearch、Logstash、Kibana)日志聚合平台应运而…

数据治理到底是什么?搞清这四件事,你就彻底明白了!

目录 第一件事:数据治理不是做“数据”,是做“管” 第二件事:治理的核心,是“数、责、权”的三角绑定 一是“数”:你到底有哪些数据? 二是“责”:每张表、每个字段是谁负责? 三…

Spring的事务控制——学习历程

思考:1. 事务是干什么的?2. 事务的特性?3. 事务控制的传播方式(传播行为)4. 事务的隔离级别5. 事务是如何实现的?6. 事务的回滚方式7. 事务失效场景回答:1. 事务和锁,还有版本控制 …

鸿蒙 Secure Boot 全流程解析:从 BootROM 到内核签名验证的实战指南

摘要 随着智能设备应用的深入,操作系统安全成为设备可信运行的基础。在物联网和多终端场景中,一旦系统被恶意篡改,将带来数据泄露、设备被控等严重后果。鸿蒙系统在安全启动方面设计了完整的机制,从最底层的 Boot ROM 开始逐级校验…

tailwindCSS === 使用插件自动类名排序

目录 类如何排序 自定义 实战应用 .prettierrc package .eslintrc 人们一直在讨论在 Tailwind 项目中对实用程序类进行排序的最佳方法。今天,我们很高兴地宣布,随着我们官方 prettier-plugin-tailwindcss 的发布,您终于可以不用为此担…

数据结构 —— 键值对 map

目录 map的若干操作 1、emplace() 2、find(key) 3、count(key) 4、lower_bound 和 upper_bound 5、erase() 6、empty() 7、降序的map 计蒜客T3603 叫号系统 题意: 解题思路: Code: Leetcode1309 解码字母到整数映射 题意: 解题…