Java实现文本编译器
作者:宝贝垚 时间:2022-10-21 18:33:20
简介
简单的文本编译器,可以通过弹出对话框打开文件,进行编写并保存文件。
代码
package Code.a;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
public class Editor implements ActionListener{
JFrame f;
JTextArea ta;
JScrollPane sp;
JMenuBar menubar;
JMenu menu;
JMenuItem openItem,saveItem,closeItem,exitItem;
FileReader fr;
FileWriter fw;
JFileChooser fc;
File file;
//构造界面,本类作为监听类;
public Editor(){
f = new JFrame("简易文本编辑器");
ta = new JTextArea();
sp = new JScrollPane(ta);//滚轮
f.add(sp);
menubar = new JMenuBar();//菜单栏
menu = new JMenu("File");
openItem = new JMenuItem("Open");//四个选项
saveItem = new JMenuItem("Save");
closeItem = new JMenuItem("Close");
exitItem = new JMenuItem("Exit");
menu.add(openItem);
menu.add(saveItem);
menu.add(closeItem);
menu.add(exitItem);
menubar.add(menu);
f.setJMenuBar(menubar);
f.setSize(400,300);
f.setVisible(true);
//四个选项事件函数;
openItem.addActionListener(this);
saveItem.addActionListener(this);
closeItem.addActionListener(this);
exitItem.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
//异常
try {
//点击打开选项时,弹出打开文件对话框;
if(e.getActionCommand()=="Open") {
fc = new JFileChooser();
if(fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
{
file = fc.getSelectedFile();
fr = new FileReader(file);
int c;
while((c = fr.read()) != -1)
{
ta.append(String.valueOf((char) c));
}
fr.close();
}
}
//点击保存选项时,弹出保存文件对话框;
else if(e.getActionCommand()=="Save") {
String str = ta.getText();
fc = new JFileChooser();
if(fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION)
{
file = fc.getSelectedFile();
fw = new FileWriter(file);
fw.write(str);
fw.close();
}
}
//点击关闭选项时,清空文本框;
else if(e.getActionCommand() == "Close") {
ta.setText("");
}
//点击退出选项时,退出当前界面;
else if(e.getActionCommand() == "Exit") {
System.exit(0);
}
}
//处理异常;
catch(IOException exp) {
exp.printStackTrace();
}
}
public static void main(String[] args) {
Editor e = new Editor();
}
}
来源:https://blog.csdn.net/qq_43533435/article/details/109562114
标签:java,文本编译器
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
java 实现简单圣诞树的示例代码(圣诞节快乐)
2023-03-13 13:13:37
![](https://img.aspxhome.com/file/2023/7/125597_0s.png)
c#可空类型的作用说明
2021-12-24 18:00:49
解决Java中socket使用getInputStream()阻塞问题
2022-06-16 14:33:14
基于C#实现屏幕取色器的示例详解
2021-06-26 08:58:05
![](https://img.aspxhome.com/file/2023/1/116501_0s.png)
Android选项菜单用法实例分析
2022-11-02 07:42:44
![](https://img.aspxhome.com/file/2023/2/111672_0s.png)
Spring @Bean注解的使用场景与案例实现
2023-11-20 04:44:22
Android 静默安装实现方法
2021-08-04 05:11:25
C#中事件处理的个人体会
2023-11-02 02:14:39
spring-boot使用AOP统一处理日志
2023-06-09 05:12:35
![](https://img.aspxhome.com/file/2023/6/77056_0s.jpg)
SpringBoot+JPA 分页查询指定列并返回指定实体方式
2021-08-26 11:54:57
一步步教你如何创建第一个C#项目
2021-08-15 04:41:56
![](https://img.aspxhome.com/file/2023/5/83295_0s.png)
详解Android全局异常的捕获处理
2023-02-05 09:02:11
Java Spring的核心与设计思想你知道吗
2021-08-30 11:18:03
![](https://img.aspxhome.com/file/2023/0/66070_0s.png)
JAVA实现经典扫雷游戏的示例代码
2022-01-26 04:20:18
![](https://img.aspxhome.com/file/2023/6/60686_0s.jpg)
基于JAVA文件中获取路径及WEB应用程序获取路径的方法
2022-08-21 01:26:57
Android设置透明状态栏和透明导航栏
2021-09-22 07:19:41
![](https://img.aspxhome.com/file/2023/3/138083_0s.png)
Java实现快速排序过程分析
2023-07-27 18:40:57
C#定义并实现单链表实例解析
2022-04-15 12:53:09
Mybatis Plus代码生成器(时间管理大师)
2023-01-30 16:27:35
![](https://img.aspxhome.com/file/2023/1/114051_0s.jpg)
Java编程枚举类实战代码分享
2023-10-16 09:36:51