import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
class TextEditorFrame extends JFrame
{
File file=null;
JTextPane text=new JTextPane(); //这是用来做文本框的
JFileChooser filechooser=new JFileChooser(); //文件选择框
JColorChooser colorchooser=new JColorChooser();
JDialog about=new JDialog(this); //关于对话框
JMenuBar menubar=new JMenuBar();//菜单
JMenu[] menus=new JMenu[]{
new JMenu("文件"),
new JMenu("帮助")
};
JMenuItem menuitems[][]=new JMenuItem[][]{
{//下拉菜单
new JMenuItem("新建"),
new JMenuItem("打开"),
new JMenuItem("保存"),
new JMenuItem("退出")
},
{ new JMenuItem("关于我们")
}
};
//构造函数
TextEditorFrame(){
initTextPane();
initMenu();
initAboutDialog();
}
void initTextPane()
{
getContentPane().add(new JScrollPane(text));
}
void initMenu()
{//对菜单栏进行初始化
for(int i=0;i {
menubar.add(menus[i]);
for(int j=0;j {
menus[i].add(menuitems[i][j]);
menuitems[i][j].addActionListener( action );//响应时事件
}
}
this.setJMenuBar(menubar);
}
void initAboutDialog()
{
about.getContentPane().add(new JLabel(" 联系作者:1234567890"));
about.setModal(true);
about.setSize(300,300);
}
//事件处理
ActionListener action=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JMenuItem mi=(JMenuItem)e.getSource();
String id=mi.getText();
if(id.equals("新建")){
text.setText("");
file=null;
}else if(id.equals("打开")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(TextEditorFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION)
{
file=filechooser.getSelectedFile();
openFile();
}
}else if(id.equals("保存")){
if(file!=null) filechooser.setSelectedFile(file);
int returnVal=filechooser.showSaveDialog(TextEditorFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION)
{
file=filechooser.getSelectedFile();
saveFile();
}
}else if(id.equals("退出")){
TextEditorFrame f=new TextEditorFrame();
int s=JOptionPane.showConfirmDialog(f,"你真的要结束吗?","结束程序",JOptionPane.YES_NO_CANCEL_OPTION);
if(s==JOptionPane.YES_OPTION)
System.exit(0);
}else if(id.equals("关于我们")){
about.setSize(400,150);
about.show();
}
}
};
void saveFile()
{
try{
FileWriter fw=new FileWriter(file);
fw.write(text.getText());
fw.close();
}catch(Exception e){
e.printStackTrace();
}
}
void openFile()
{
try{
FileReader fr=new FileReader(file);
int len=(int)file.length();
char []buffer=new char[len];
fr.read(buffer,0,len);
fr.close();
text.setText(new String(buffer));
}catch(Exception e){
e.printStackTrace();
}
}
}
class Test
{
public static void main(String args[]){
TextEditorFrame f=new TextEditorFrame();
f.setTitle("记事本");
f.setSize(800,600);
f.show();
}
}
阅读(566) | 评论(0) | 转发(0) |