package others.swing.p002;
import java.awt.event.*;
import java.awt.*;
//import java.io.*是引入java.io包里的所有类,*是通配符。
import java.io.*;
//导入java swing界面库的类
import javax.swing.*;
/**
* 文本编辑器
* 项目详情:https://blog.csdn.net/WeiHao0240/article/details/120824175
*/
public class TextEditor {
public static void main(String args[]) {
Jsb dd = new Jsb("我的记事本");//创建一个jsb的类对象
}
}
class Jsb extends JFrame {
Dialog bb;//对话框
String strt;
int i;
FileDialog fd;
File file;
public Frame f;
public TextArea p1;//文本区域
public MenuBar menubar;//菜单
public Menu menu1, menu2, menu3, menu4, menu5;
public MenuItem item1, item2, item3, item4, item5, item6, item7, item8, item9, item10, item11, item12, item13, item14;
Jsb(String s)//构造函数
{
i = 0;
f = new Frame(s);
p1 = new TextArea("");
f.setBackground(Color.white);//设置窗口背景颜色为白色
f.setVisible(true);//设置为可见
menubar = new MenuBar();//设置一个菜单
menu1 = new Menu("文件");//设置菜单栏
menu2 = new Menu("编辑");
menu3 = new Menu("格式");
menu4 = new Menu("字体");
menu5 = new Menu("信息");
item1 = new MenuItem("新建");//具体的菜单条目
item2 = new MenuItem("打开");
item3 = new MenuItem("保存");
item4 = new MenuItem("另存为");
item5 = new MenuItem("退出");
item6 = new MenuItem("全选");
item7 = new MenuItem("复制");
item8 = new MenuItem("剪切");
item9 = new MenuItem("粘贴");
item10 = new MenuItem("字体");
item11 = new MenuItem("字形");
item12 = new MenuItem("大小");
item13 = new MenuItem("颜色");
item14 = new MenuItem("编程人信息");
//相应窗口关闭事件
f.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
f.setVisible(false);
System.exit(0);
}
});
menu1.add(item1);//将“新建”写入到文件中
menu1.add(item2);//将“打开”写入到文件中
menu1.add(item3);//将“保存”写入到文件中
menu1.add(item4);//将“另存为”写入到文件中
menu1.add(item5);//将“退出”写入到文件中
menu2.add(item6);//将“全选”写入到编辑中
menu2.add(item7);//将“复制”写入到编辑中
menu2.add(item8);//将“剪切”写入到编辑中
menu2.add(item9);//将“粘贴”写入到编辑中
menu3.add(menu4);//将“字体”写入到格式中
menu4.add(item10);//将“字体”写入字体到文件中
menu4.add(item11);//将“字形”写入到字体中
menu4.add(item12);//将“大小”写入到字体中
menu4.add(item13);//将“颜色”写入到字体中
menu5.add(item14);//将“编辑人信息”写入到信息中
menubar.add(menu1);//文件
menubar.add(menu2);//格式
menubar.add(menu3);//字体
menubar.add(menu5);//信息
f.setMenuBar(menubar);//设置菜单条
item1.addActionListener(new Create());//新建
item2.addActionListener(new OpenFile());//打开
item3.addActionListener(new SaveFile());//保存
item4.addActionListener(new SaveAs());//另存为
item5.addActionListener(new Exit());//退出
item6.addActionListener(new CheckAll());//全选
item7.addActionListener(new Copy());//复制
item8.addActionListener(new Shear());//剪切
item9.addActionListener(new Paste());//粘贴
item10.addActionListener(new Font1());//字体
item11.addActionListener(new Font2());//字形
item12.addActionListener(new Font3());//大小
item13.addActionListener(new color());//颜色
item14.addActionListener(new ProgrammerInfo());//编程人信息
f.add(p1);
f.pack(); //放置的组件设定窗口的大小容纳放置的所有组件
}
//使用内部类对各个事件进行响应
class Create implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String ss;
ss = p1.getText().trim(); //在p1中获得文本中除去空格
//如果内容不为空就保存
if (i == 0 && (ss.length() != 0)) {
bc();
} else {
p1.setText("");
i = 0;//设置文本,如果为空就为空,标志量为0
f.setTitle("文件对话框");//名字修改为文件对话框
}
}
}
//打开文件
class OpenFile implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
fd = new FileDialog(f, "打开文件", 0);//实例话一个文件对话框
fd.setVisible(true); //创建并显示打开文件对话框
try { //以缓冲区方式读取文件内容
file = new File(fd.getDirectory(), fd.getFile());
f.setTitle(fd.getFile() + "文件对话框");//设置标题为文件对话框
FileReader fr = new FileReader(file);//文件流的读取
BufferedReader br = new BufferedReader(fr);//把文件读到缓冲区
String line = null;//字符串赋值为空
String view = "";//字符串赋值为空
//按行读取文本
while ((line = br.readLine()) != null) {
view += line + "\n";//把line里的内容读取到view里
}
p1.setText(view);//为view设置文本
br.close();//关闭文件流
fr.close();
} catch (IOException expIn) {
}
}
}
//保存 文件
class SaveFile implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (i == 0) {
bc();
}
}
}
//另存为
class SaveAs implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
lbc();
}
}
//退出
class Exit implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String ss;
ss = p1.getText().trim();//获得文本中的内容除去空格
if (i == 0 && (ss.length() != 0))//如果标志量为0且长度不为0
{
bc();//就保存
} else {
System.exit(0);//否则退出
}
}
}
//程序员信息
class ProgrammerInfo implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
bb = new Dialog(f, "编程人信息");//创建对话框,显示相关信息
Label l1 = new Label("Jack魏 整理");//编程人的信息
bb.add(l1);//把l1的内容添加到bb下
bb.setSize(400, 300);//设置窗口大小
bb.setBackground(Color.white);//设置背景色为白色
bb.setVisible(true);//把窗口设置为可见
//窗口的监听器
bb.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
bb.setVisible(false);//设置为不可见
bb.dispose();
}
});
}
}
//全选
class CheckAll implements ActionListener {
//这是一个事件监听器,可以处理类似单击鼠标时触发的事件 ActionEvent就是一个事件类,传入的e就是该事件的对象
@Override
public void act
没有合适的资源?快使用搜索试试~ 我知道了~
Java 语言有以下几个优点: 1. 简单易学:Java 语言的语法和结构相对简单,与传统的 C/C++ 语言相比,去掉了一些复杂而容易出错的特性,使得初学者更容易上手。 2. 面向对象:Java 是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的特性。通过面向对象的开发方式,可以提高代码的模块化、可维护性和重用性。 3. 平台无关性:Java 程序在编译后生成的是字节码(bytecode),而不是特定操作系统的机器码。这使得 Java 程序可以在不同的操作系统上运行,实现了“一次编写,到处运行”的理念。 4. 自动内存管理:Java 使用垃圾回收机制进行自动的内存管理,开发者无需手动分配和释放内存。这减少了内存泄漏和悬空指针等底层内存操作导致的 bug,并简化了程序开发的过程。 5. 强大的类库支持:Java 提供了庞大的标准类库和第三方类库,涵盖了常见的开发需求,包括文件处理、网络通信、多线程、数据库连接、图形用户界面等。这些类库使得Java开发人员能够更高效地开发应用程序。 6. 安全性:Java 的安全性是它的重要特点之一。Java 提供了一个安全模型,
资源推荐
资源详情
资源评论
收起资源包目录
TextEditor.rar (1个子文件)
TextEditor.java 14KB
共 1 条
- 1
资源评论
专家-百锦再
- 粉丝: 7436
- 资源: 731
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功