import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
public class Wordwin extends JFrame implements DocumentListener {
/**
*
*/
private static final long serialVersionUID = 1L;
JMenuBar menubar=new JMenuBar();//创建菜单条
JMenu file=new JMenu("文件");//创建菜单子项
JMenu edit=new JMenu("编辑");
JMenu geshi=new JMenu("格式");
JTextArea wordArea=new JTextArea();//新建一个文本域
JScrollPane imgScrollPane = new JScrollPane(wordArea);//设置文本域可滚动
String [] str1={"新建","打开","保存","另存为","退出"};
String [] str2={"剪切","复制","粘贴","替换"};
String [] str3={"字体"};
Font f1=new Font("隶书",Font.PLAIN,15);//设置字体变量f1为隶书,大小15
Font1 z1=new Font1(); //设置字体文本域
Change c1=new Change();//查找替换文本域
int flag=0;//设置标签
String source="";//空白文本框
public static void main(String[] args) {
JFrame wordwin=new Wordwin();//构造一个属于Windows的窗体
wordwin.setVisible(true);//窗体可见
}
public Wordwin(){
c1.set(wordArea);
z1.set(wordArea);
setTitle("文本编辑器");
Toolkit kit = Toolkit.getDefaultToolkit();//工具包
Dimension screenSize = kit.getScreenSize();//获取屏幕分辨率
setSize(screenSize.width/2,screenSize.height/2);//大小
setLocation(screenSize.width/4,screenSize.height/4);//位置
add(imgScrollPane,BorderLayout.CENTER);//文本区域放置到中央
setJMenuBar(menubar);
file.setFont(f1);//设置字体
edit.setFont(f1);
geshi.setFont(f1);
menubar.add(file);//给“文件”添加菜单子项
menubar.add(edit);
menubar.add(geshi);
wordArea.getDocument().addDocumentListener(this);//为文本域添加文件监听者
for(int i=0;i<str1.length;i++){
JMenuItem item1= new JMenuItem(str1[i]);//将“新建”“保存”等添加进“文件”的目录中,“文件”即“item1”
item1.addActionListener(new MyActionListener1());//监听是否点击item1
item1.setFont(f1);//设置“新建”“保存”等字体
file.add(item1);
}
for(int i=0;i<str2.length;i++){
JMenuItem item2= new JMenuItem(str2[i]);
item2.addActionListener(new MyActionListener1());
item2.setFont(f1);
edit.add(item2);
}
for(int i=0;i<str3.length;i++){
JMenuItem item3= new JMenuItem(str3[i]);
item3.addActionListener(new MyActionListener1());
item3.setFont(f1);
geshi.add(item3);
}
}
public void changedUpdate(DocumentEvent e) {
flag=1;
}//修改、插入、删除操作后重新定义标签flag=1
public void insertUpdate(DocumentEvent e) {
flag=1;
}
public void removeUpdate(DocumentEvent e) {
flag=1;
}
void open(){
FileDialog filedialog=new FileDialog(this,"打开",FileDialog.LOAD);//创建一个具有指定标题的文件对话框窗口
filedialog.setVisible(true);
String path=filedialog.getDirectory();//获取当前文件的路径
String name=filedialog.getFile();//获取文件名
if(path!=null && name!=null){
FileInputStream file = null;//读取文件(文件输入流)
try {
file = new FileInputStream(path+name);
} catch (FileNotFoundException e) {
}
InputStreamReader put =new InputStreamReader(file);//读取需打开的文件的内容
BufferedReader in=new BufferedReader(put);//缓冲字符输入流
String temp="";
String now = null;
try {
now = (String)in.readLine();//读取内容
} catch (IOException e) {
e.printStackTrace();//在命令行打印异常信息在程序中出错的位置及原因
}
while(now!=null){
temp+=now+"\r\n";
try {
now=(String)in.readLine();
} catch (IOException e) {
e.printStackTrace();
}
}
wordArea.setText(temp);
}
}