我做的一个java简单文本编辑器代码
下面是我的一个简单java程序代码,可以练习下。
有的功能没弄完,有兴趣的可以完成他,对学java 很有帮助。
package swing;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.event.*;
public class Frame1 extends JFrame {
Container c = new Container();
Label la = new Label("请帮助边远山区的可怜儿童们!");
JMenuBar jmb = new JMenuBar();
JMenu file = new JMenu("File");
JMenu edit = new JMenu("Edit");
JMenu option = new JMenu("Option");
JMenu about = new JMenu("about");
JMenuItem open = new JMenuItem("Open");
JMenuItem save = new JMenuItem("Save as");
JMenuItem exit = new JMenuItem("Exit");
JMenuItem copy = new JMenuItem("Copy");
JMenuItem cut = new JMenuItem("Cut");
JMenuItem paste = new JMenuItem("Paste");
JMenuItem delete = new JMenuItem("DeleteAll");
JMenuItem italic = new JMenuItem("Italic");
JMenuItem bold = new JMenuItem("Bold");
JMenuItem version = new JMenuItem("about");
JMenuItem help = new JMenuItem("help");
JTextPane ta = new JTextPane();
JFileChooser chooser = new JFileChooser();
FileInputStream filestream = null;
myversion exitversion = new myversion();
String selected = new String();
int dot, mark;
public Frame1() {
chooser.setSize(400, 350);
chooser.setDialogTitle("请帮助边远山区的可怜儿童们!");
chooser.setVisible(true);
la.setSize(200, 20);
la.setBackground(Color.orange);
Font f = new Font("TimesRoman", Font.PLAIN, 16);
c = this.getContentPane();
c.setLayout(new BorderLayout());
c.add(ta, "Center");
this.setJMenuBar(jmb);
jmb.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 0));
jmb.add(file);
jmb.add(edit);
jmb.add(option);
jmb.add(about);
jmb.add(la);
file.add(open);
file.add(save);
file.add(exit);
edit.add(copy);
edit.add(cut);
edit.add(paste);
edit.add(delete);
option.add(italic);
option.add(bold);
about.add(version);
about.add(help);
open.addActionListener(new ListenActionForJfilechooser());
save.addActionListener(new ListenActionForJfilechooser());
exit.addActionListener(new exitListener());
copy.addActionListener(new copyListener());
cut.addActionListener(new cutListener());
paste.addActionListener(new pasteListener());
delete.addActionListener(new deleteListener());
italic.addActionListener(new italicListener());
bold.addActionListener(new boldListener());
version.addActionListener(new showversion());
ta.addCaretListener(new taListener());
ta.setFont(f);
}
class boldListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Font f = new Font("TimesRoman", Font.BOLD, 16);
ta.setFont(f);
}
}
class italicListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Font f = new Font("TimesRoman", Font.ITALIC, 16);
ta.setFont(f);
}
}
class deleteListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Font f = new Font("TimesRoman", Font.PLAIN, 16);
ta.setText(null);
ta.setFont(f);
}
}
class cutListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s1 = new String();
selected = selectedString();
s1 = ta.getText();
int length = s1.length();
if (dot < mark) {
ta.setText(s1.substring(0, dot) + s1.substring(mark, length));
} else {
ta.setText(s1.substring(0, mark) + s1.substring(dot, length));
}
}
}
class pasteListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
ta.paste();
}
}
class taListener implements CaretListener {
public void caretUpdate(CaretEvent e) {
dot = e.getDot(); // 取得光标开始位置
mark = e.getMark();// 取得光标结束位置
}
}
class copyListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
selected = selectedString();
}
}
class exitListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
class ListenActionForJfilechooser implements ActionListener {
int result;
File file;
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getSource() == open) {
int state = chooser.showOpenDialog(null);
file = chooser.getSelectedFile();
if (file != null && state == JFileChooser.APPROVE_OPTION) {
try {
filestream = new FileInputStream(file);
la.setText("打开的文件是:" + file.getName());
} catch (Exception e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
try {
ta.read(filestream, this);
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
if (e.getSource() == save) {
result = chooser.showSaveDialog(ta);
file = null;
if (result == JFileChooser.APPROVE_OPTION) {
file = chooser.getSelectedFile();
la.setText("存储文件名为:" + file.getName());
} else if (result == JFileChooser.CANCEL_OPTION) {
la.setText("您没有选择任何文件");
}
FileOutputStream fileOutStream = null;
if (file != null) {
try {
fileOutStream = new FileOutputStream(file);
} catch (FileNotFoundException fe) {
la.setText("File Not Found");
return;
}
String content = ta.getText();
try {
fileOutStream.write(content.getBytes());
} catch (IOException ioe) {
la.setText("写入文件错误");
} finally {
try {
if (fileOutStream != null)
fileOutStream.close();
} catch (IOException ioe2) {
}
}
}
}
}
}
class showversion implements ActionListener {
public void actionPerformed(ActionEvent e) {
exitversion.setVisible(true);
}
}
class myversion extends Frame {
Label l1 = new Label("Author: ChangTiger ");
Label l2 = new Label("Version 0.1");
Label l3 = new Label("2007.11.6");
Label l4 = new Label("Tel:13576947833");
myversion() {
this.setLayout(new FlowLayout(FlowLayout.CENTER, 50, 20));
this.add(l1);
this.add(l2);
this.add(l3);
this.add(l4);
this.setBounds(200, 180, 300, 200);
this.addWindowListener(new myWindowListener());
}
}
class myWindowListener extends WindowAdapter {
public void windowClosing(WindowEvent e) {
exitversion.setVisible(false);
}
}
String selectedString() {
String s = new String();
s = ta.getText();
if (dot < mark) {
s = s.substring(dot, mark);
} else {
s = s.substring(mark, dot);
}
return s;
}
public static void main(String[] args) {
Frame1 frame1 = new Frame1();
frame1.setSize(500, 400);
frame1.setVisible(true);
}
}
我做的一个java简单文本编辑器代码相关推荐
- 如何做一个高级的文本编辑器 textarea,拥有快捷键操作
如何做一个高级的文本编辑器 textarea,拥有快捷键操作 最近想做一个高级点的 textarea ,支持 JetBrains 系列软件的快捷键,比如: CTRL+ D 复制当前行. Tab 在前面 ...
- java简单文本编译器_java -简易文本编辑器
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; /** * Title:java ...
- JAVA写文本编辑器(四)
其实写到这里,我已经差不多断气了... 常规套路,这里是前三篇的传送门,需要的同学可以看一下:JAVA写文本编辑器(三) JAVA写文本编辑器(二)JAVA写文本编辑器(一) 现在我们只差最后一部分了 ...
- c# html文本编辑器,C#实现简单文本编辑器
本文实例为大家分享了C#实现简单文本编辑器的具体代码,供大家参考,具体内容如下 建立一个窗体文件,实现对文件的编辑保存和对txt文件的打开 界面设计: 程序源代码: //form1.cs using ...
- 用Python做一个简陋的文本编辑器
Hello,大家好,我是Gary! 想必大家都用过Windows系统自带的"记事本"应用吧?它是一个编辑txt文件的应用. 当然,咱们可不能只局限于记事本,咱们也可以自己做一个! ...
- JAVA写文本编辑器(一)
作业题,花了整整两天终于搞出来了,今天给大家整理一下思路. 这里用swing ,awt写的. 我们大概要做成一个电脑的记事本那样的一个编辑器.可以调整字体,字号,颜色.能够打开.保存文件,新建窗口,点 ...
- 25、Java Swing文本编辑器的实现
最简单的文本编辑器要数 Windows 的记事本了.在学习了本章知识之后,本次案例将完成一个简单的文本编辑器程序.它可以打开文本文件,并输出文本文件的位置和内容.其中用到了菜单.工具栏以及选项卡等组件 ...
- Swing学习25:Java Swing文本编辑器的实现
最简单的文本编辑器要数 Windows 的记事本了.在学习了本章知识之后,本次案例将完成一个简单的文本编辑器程序.它可以打开文本文件,并输出文本文件的位置和内容.其中用到了菜单.工具栏以及选项卡等组件 ...
- 基于Qt的简单文本编辑器
1.Qt概述 Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形界面所需的所有功能.它是完全面向对象的,很容易扩展,并且允许真正的组件编程. 2.Qt发展史 199 ...
最新文章
- 风向2018 | AI 突围
- GoLand配置数据库、远程host以及远程调试
- html用占位符文本填补空白,占位符文本的选择
- 安卓最新系统_你的Windows电脑即将可以运行最新版安卓系统
- Java Platform SE 8 中文文档
- Linux文件权限管理 chmod 读、写、可执行
- AD的备份与标准还原:深入浅出Active Directory系列(四)
- Ubuntu 12.04下安装搜狗拼音 + 安装搜狗皮肤-转
- 前端请求接口post_程序员:HttpClient进行post请求的工具类,访问第三方接口HTTPS...
- b站学python_Python爬虫学习教程 bilibili网站视频爬取!【附源码】
- Android入门基础教程1
- java中的方法重载
- dorado 7 注意总结
- 【运维心得】只有百度能打开,其他页面打不开怎么办?
- 微信分享网页时自定义标题描述和图片
- 华纳云:美国高防服务器的防火墙介绍
- LaTex技巧:用PPT画图,然后导入LaTeX
- BERT模型--transflow转为pytorch
- java sftp命令_linux下如何使用sftp命令
- TIA博途中触摸屏仿真时画面字体变大,超出范围的处理方法