java简易编辑器
package peng_jun; import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
import java.io.*;
import javax.swing.filechooser.*;
import javax.swing.filechooser.FileFilter;
import java.awt.datatransfer.*; public class Text extends JFrame {
TextArea area;//文本域
String name = null;//文件名
String board = null;
private Clipboard cb;//系统粘贴板 Text() throws Exception {//构造函数
setTitle("记事本");
Toolkit kit = Toolkit.getDefaultToolkit();//Toolkit获得本机系统的屏幕的参数
//Image img = kit.getImage("01.jpg");
//setIconImage(img); JMenuBar jmb = new JMenuBar();//创建菜单条
add(jmb);
setJMenuBar(jmb);
area = new TextArea();
add(area); JMenu file = new JMenu("文件");//定义“文件”菜单项
JMenuItem rebuild = new JMenuItem("新建");
rebuild.setAccelerator(KeyStroke.getKeyStroke("ctrl N"));
JMenuItem save = new JMenuItem("保存");
save.setAccelerator(KeyStroke.getKeyStroke("ctrl S"));
JMenuItem open = new JMenuItem("打开");
open.setAccelerator(KeyStroke.getKeyStroke("ctrl O"));
JMenuItem anotherSave = new JMenuItem("另存为");
file.add(rebuild);
file.add(save);
file.add(open);
file.add(anotherSave);
// JScrollPane scroldPane=new JScrollPane(area); //设置滚动轴
// add(scroldPane);
JMenu edit = new JMenu("编辑");//定义“编辑”菜单项
JMenuItem cut = new JMenuItem("剪切");
cut.setAccelerator(KeyStroke.getKeyStroke("ctrl X"));
JMenuItem copy = new JMenuItem("复制");
copy.setAccelerator(KeyStroke.getKeyStroke("ctrl C"));
JMenuItem plaster = new JMenuItem("粘贴");
plaster.setAccelerator(KeyStroke.getKeyStroke("ctrl V"));
JMenuItem all = new JMenuItem("全选");
all.setAccelerator(KeyStroke.getKeyStroke("ctrl A"));
edit.add(cut);
edit.add(copy);
edit.add(plaster);
edit.add(all);
JMenu help = new JMenu("帮助");//定义“帮助”菜单项
JMenuItem about = new JMenuItem("关于");
help.add(about); jmb.add(file);
jmb.add(edit);
jmb.add(help);
setSize(, );
//setLocation(300, 200);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); cb = Toolkit.getDefaultToolkit().getSystemClipboard();//调用系统剪贴板
save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
saveText();
} catch (Exception ex) {
}
}
});
open.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
openText();
} catch (Exception ex) {
}
}
});
rebuild.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
area.setText("");
name = null;
} catch (Exception ex) {
}
}
});
anotherSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
anotherSaveText();
}
}); cut.addActionListener(new ActionListener() // 剪切
{
public void actionPerformed(ActionEvent e) {
board = area.getSelectedText();
cb.setContents(new StringSelection(board), null);
area.replaceRange("", area.getSelectionStart(),
area.getSelectionEnd());
}
});
copy.addActionListener(new ActionListener() // 复制
{
public void actionPerformed(ActionEvent e) {
board = area.getSelectedText();
cb.setContents(new StringSelection(board), null);
}
});
plaster.addActionListener(new ActionListener() // 粘贴
{
public void actionPerformed(ActionEvent e) {
try {
Transferable content = cb.getContents(null);
String st = (String) content
.getTransferData(DataFlavor.stringFlavor);
area.replaceRange(st, area.getSelectionStart(),
area.getSelectionEnd());
} catch (Exception ex) {
}
}
});
all.addActionListener(new ActionListener() // 全选
{
public void actionPerformed(ActionEvent e) {
area.setSelectionStart();
area.setSelectionEnd(area.getText().length());
}
});
about.addActionListener(new ActionListener() {//帮助
public void actionPerformed(ActionEvent e) {
JFrame frame = new JFrame("关于");
frame.setSize(, );
frame.setLocation(, );
JTextArea area1 = new JTextArea("java简易文本编辑器");
frame.add(area1);
frame.setVisible(true);
}
});
} public void openText() // 打开
{
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("Files",
"txt", "java");
chooser.setFileFilter(filter);
chooser.setCurrentDirectory(new File("."));
int result = chooser.showOpenDialog(Text.this);
if (result == JFileChooser.APPROVE_OPTION) {
name = chooser.getSelectedFile().getPath();
setTitle(name);
try {
BufferedReader in = new BufferedReader(new FileReader(name));
String line = null;
String datas = "";
while ((line = in.readLine()) != null) {
if (datas == "") {
datas = datas + line;
} else {
datas = datas + "\n" + line;
}
}
area.setText(datas);
in.close();
} catch (Exception ex) {
}
}
} public void saveText() // 保存
{
if (name == null) {
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"Files", "txt", "java");
chooser.setFileFilter(filter);
chooser.setCurrentDirectory(new File("."));
int result = chooser.showSaveDialog(Text.this);
if (result == JFileChooser.APPROVE_OPTION) {
name = chooser.getSelectedFile().getPath();
try {
OutputStream out = new FileOutputStream(name);
String datas = area.getText();
out.write(datas.getBytes());
out.close();
} catch (Exception ex) {
}
}
} else {
try {
OutputStream out = new FileOutputStream(name);
String datas = area.getText();
out.write(datas.getBytes());
out.close();
} catch (Exception ex) {
}
}
} public void anotherSaveText() // 另存为
{
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("Files",
"txt", "java");
chooser.setFileFilter(filter);
chooser.setCurrentDirectory(new File("."));
int result = chooser.showSaveDialog(Text.this);
if (result == JFileChooser.APPROVE_OPTION) {
name = chooser.getSelectedFile().getPath();
try {
OutputStream out = new FileOutputStream(name);
String datas = area.getText();
out.write(datas.getBytes());
out.close();
} catch (Exception ex) {
}
}
} public static void main(String[] args) throws Exception {
new Text();
}
}
java简易编辑器的更多相关文章
- java文本编辑器5
package peng_jun; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.* ...
- Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件
原文:转:Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件 2011-04-30 12:50 很多人不知道怎么用 IntelliJ IDE ...
- Eclipse Java类编辑器里出现乱码的解决方案
如图:在Java Class编辑器里出现的这种乱码,非常烦人. 解决方案:Windows->Preference->General->Appearance, 在里面将Theme设置成 ...
- java文本编辑器v2.0 图形用户界面
package 文本编辑器; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; impor ...
- 数据结构——单链表java简易实现
巩固数据结构 单链表java实现 单链表除了表尾 每个几点都有一个后继 结点有数据和后继指针组成 通过构建表头和表尾(尾部追加需要)两个特殊几点 实现单链表的一些操作,代码如下 package co ...
- java 简易日历表
在页面上输出1900年以后任意一年的简易日历表 package text3; import java.util.Scanner; public class MyCalendar { public st ...
- 补码一位乘法 Booth算法 Java简易实现
本文链接:https://www.cnblogs.com/xiaohu12138/p/11955619.html. 转载,请说明出处. 本程序为简易实现补码一位乘法,若代码中存在错误,可指出,本人会不 ...
- Java简易日历的实现
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...
- mongo数据管理java简易版
mongo是搭建在局域网服务器上的,处理起来比较麻烦,于是自己写了个简单的处理工具. 如果有对java操作mongo不太了解的也可以在这里看下简单的示例. 只有增删改查的功能,而且只支持json格式的 ...
随机推荐
- XCode常用快捷键(转)
刚开始用Xcode是不是发现以前熟悉的开发环境的快捷键都不能用了?怎么快捷运行,停止,编辑等等.都不一样了.快速的掌握这些快捷键,能提供开发的效率. 其实快捷键在Xcode的工具栏里都标注有,只是有的 ...
- iOS-NSAttributedString自定义文字变色
1.使用注意: 1.给UILabel设置attributedText了会导致给UILabel中text,font,textColor,shadowColor,shadowOffset,textAlig ...
- Weblogic 部署注意事项
Weblogic下部署服务注意事项: 1. 解决weblogic与hibernate的jar包冲突问题: 首 先找到该系统的DOMAIN_HOME(即你所建的域所在的位置)如:域empi的DOMAIN ...
- EC读书笔记系列之4:条款8 别让异常逃离析构函数
条款8 别让异常逃离析构函数 记住: ★析构函数绝对不要吐出异常.若一个被析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下它们(不传播)或结束程序. ★若客户需对某个操作函数运行期间 ...
- 浅谈C中的指针和数组(七)
现在到揭露数组名本质的时候了,先给出三个结论: (1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组: (2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量: ( ...
- 判断浏览器 IE 11
var getOs=function() { try { var u = window.navigator.userAgent.toLocaleLowerCase(), msie = /(m ...
- php 异步处理的gearman
1. php 是进程处理,单线程到的,没有异步机制,在一些处理花费时间较多的情况导致用户体验较差.可以使用gearman 进行异步处理. 2. gearman 是一个异步处理的socket架构. 需要 ...
- shell命令实战详解
1.解析路径获取文件名和目录名. 获取文件名 #awk解法:用“/”做分隔符,然后打印出最后的那一部分. resFile=`echo /tmp/csdn/zhengyi/test/adb.l ...
- xtrabackup执行备份要拥有的权限
xtrabackup备份的原理: xtrabackup直接复制datadir目录中的文件到备份目录下.这样问题就来了,在备份的时候mysql可以还在执行写入操作:所以xtrabackup会不停的去扫描 ...
- Pthon MySQLdb 的安装
说明: 要用python 去连接MySQL我们需要一个驱动程序这个程序就是MySQL-python,所以我们首先就是要下一个对应版本的MySQL-python (注意这个驱动程序只有32位版本的,所以 ...