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格式的 ...
随机推荐
- struts2 模型驱动的action赋值优先顺序
struts2 模型驱动的action赋值优先顺序: 1.优先设置model的属性. 2.如果model属性中没有对应的成员变量,则向上冒泡,寻找action中的属性进行set. 如果action中的 ...
- Instruments性能检测
关于Instruments有网友如是说的:"一句话: 内存开销.运行速度.内存泄露 and so on". 如此简单的回答肯定打发不了咱们各位看官和面试官,当然上述表达和下边的网友 ...
- win32 控件的创建和消息响应
1. 控件的创建 控件的创建和窗口创建是一样的,例如: ,,,, hWnd,(HMENU)IDB_BUTTON01,hInst,NULL); 是一个按钮的创建,其中hWnd是窗口句柄,hInst是应用 ...
- ?super T 和? extends T区别
Java 泛型 关键字说明 ? 通配符类型 <? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类 <? super T> 表示类型下界(Java ...
- [转载]CTreeCtrl 和 CListCtrl 控件(VC_MFC)
来源:http://www.cnblogs.com/kzloser/archive/2012/11/23/2783305.html Tree Control 控件(MSDN 链接) 说明: 树形控件是 ...
- linux系统find命令使用
find命令简介 1.find的作用 find是个使用频率比较高的命令.常常用它在系统特定目录下,查找具有某种特征的文件. 2. find命令的格式 find [-path……]-option ...
- 数字时钟DigClock
首先建立数字显示类: using System; using System.Drawing; namespace CsDev { class SevenSegmentDispay { Graphics ...
- Cortex-M3 动态加载一(地址无关代码实现)
这篇文章是自己疑惑究竟地址无关性是如何实现,然后查看汇编和CPU指令手册,最后分析解除自己疑惑的,高手不要鄙视,哈哈. 编译C代码时候需要制定--acps/ropi选项,如下例子: void Syst ...
- Java 拾遗
1.选择表达式中的类型转换 public class Test { public void static main(String args[]){ int i = 5; System.out.prin ...
- spring mvc 使用jsr-303进行表单验证的方法介绍
源代码来源:http://howtodoinjava.com/spring/spring-mvc/spring-bean-validation-example-with-jsr-303-annotat ...