支持导入TXT以及DOC文件以及基本的复制 粘贴 剪贴 字体以及颜色的变换
源代码如下(由于太长只贴出一半,其余见附件) :
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.border.*;
import java.io.*;
class EditorWindow extends JFrame implements ActionListener,ItemListener
{
//成员变量
JTabbedPane menuBar;//菜单栏
JButton buttonNew,buttonOpen,buttonSave,buttonSaveAs,buttonExit;//文件菜单项:打开,保存,另存为,退出
JButton buttonSearch,buttonIns,buttonCut,buttonCopy,buttonPaste;//编辑菜单项:查找,替换,打开,保存,另存为,退出
FileDialog openDialog,saveDialog,saveAsDialog;//文件菜单对话框
String fileName=""; //上次保存后的文件名和地址
JPopupMenu popupMenu; //右击弹出式菜单
JMenuItem itemCopy,itemCut,itemPaste,itemFont;//右击弹出式菜单项:复制,剪切,粘贴
Color newColor;//调色板
JTextArea text;//文本区
boolean textValueChanged=false;
JCheckBox line;//自动换行选择框
JButton buttonFont;//字体高级设置按钮
JComboBox font,color,size,style; //下拉列表
JLabel labelFont,labelColor,labelSize,labelStyle;
//构造方法
EditorWindow(String s)
{
//框架
super(s);
Container con=getContentPane();
Panel panel=new Panel(),
panel1=new Panel(),
panel2=new Panel(),
panel3=new Panel(),
panel4=new Panel();
menuBar=new JTabbedPane(JTabbedPane.NORTH);
menuBar.add("文件",panel);
menuBar.add("编辑",panel1);
menuBar.add("字体",panel2);
menuBar.add("关于",panel4);
text=new JTextArea(350,450);
//字体
buttonFont=new JButton("高级");
labelFont=new JLabel("字体:");
labelColor=new JLabel("颜色:");
labelSize=new JLabel("字号:");
labelStyle=new JLabel("字型:");
color=new JComboBox();
font=new JComboBox();
size=new JComboBox();
style=new JComboBox();
//文件
buttonNew=new JButton("新建");
buttonOpen=new JButton("打开");
buttonSave=new JButton("保存");
buttonSaveAs=new JButton("另存为");
buttonExit=new JButton("退出");
openDialog=new FileDialog(this,"打开",FileDialog.LOAD);//打开文件对话框
saveDialog=new FileDialog(this,"保存",FileDialog.SAVE);//保存对话框
saveAsDialog=new FileDialog(this,"另存为",FileDialog.SAVE);//另存为文件对话框
//编辑
buttonSearch=new JButton("查找");
buttonIns=new JButton("替换");
buttonCut=new JButton("剪切");
buttonCopy=new JButton("复制");
buttonPaste=new JButton("粘贴");
//右击弹出菜单项
popupMenu=new JPopupMenu();
itemCopy=new JMenuItem("复制");
itemCut=new JMenuItem("剪切");
itemPaste=new JMenuItem("粘贴");
itemFont=new JMenuItem("字体颜色");
//关于
JLabel about=new JLabel("◎ 2008 - 2009 Inc. All Rights Reserved MVPSKY 版权所有 ");
about.setBounds(0,0,500,320);
//其他
line=new JCheckBox("自动换行",true);
//添加‘字体’菜单项
panel2.add(labelFont);
panel2.add(font);
font.addItem("宋体");
font.addItem("仿宋");
font.addItem("楷体");
panel2.add(labelStyle);
panel2.add(style);
style.addItem("普通");
style.addItem("粗体");
style.addItem("斜体");
style.addItemListener(this);//字体增加监视器
panel2.add(labelColor);
panel2.add(color);
color.addItem("红色");
color.addItem("绿色");
color.addItem("蓝色");
panel2.add(buttonFont);
//添加‘文件’菜单项
panel.add(buttonNew);
panel.add(buttonOpen);
panel.add(buttonSave);
panel.add(buttonSaveAs);
panel.add(buttonExit);
//添加‘编辑’菜单项
panel1.add(buttonSearch);
panel1.add(buttonIns);
panel1.add(buttonCut);
panel1.add(buttonCopy);
panel1.add(buttonPaste);
//关于
panel4.add(about);
setBounds(0,0,50,320);
//添加右击‘弹出菜单’项
popupMenu.add(itemCopy);
popupMenu.add(itemCut);
popupMenu.add(itemPaste);
popupMenu.add(itemFont);
//添加‘菜单条’
con.add(menuBar,BorderLayout.NORTH);
//添加带滚动条的文本区
con.add(new JScrollPane(text),BorderLayout.CENTER);
//其他
panel3.add(line);
con.add(line,BorderLayout.SOUTH);
//窗口属性
setSize(400,500);
setLocation(120,120);
text.setWrapStyleWord(true);//以单词为界换行
text.setLineWrap(true);
没有评论:
发表评论