📄 main.java
字号:
import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.datatransfer.*;
import java.util.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.swing.event.*;
import javax.swing.tree.*;
class MyFrame extends JFrame implements MouseListener,ActionListener,ItemListener
{
int x=-1,y=-1;
SerachDialog Srd;
ReplaceDialog Rld;
HelpDialog Hdg;
TwoDialog Mf2;
GotoDialog Goto;
// myTree mytree;
Date nowTime=new Date();
MenuBar menubar;
Clipboard clipboard=null;
Menu menu,menu1,menu2,abort,窗体风格;
MenuItem mit1,mit2,mit3,mit4,mit5,mit6,mit7,mit8,mit9,
mit10,mit11,mit12,mit13,mit14,mit15,
find,replace,jump,help,mit16,Window风格,Motif风格,Metal风格;
FileDialog fileopen,filesave;
JTextArea text1;
BufferedReader cin;
FileReader in;
BufferedWriter out;
FileWriter tofile;
JFileChooser chooser=new JFileChooser();
CheckboxMenuItem 自动换行;
PopupMenu popmenu;
// TextArea.SCROLLBARS_HORIZONTAL_ONLY;
//TextArea.SCROLLBARS_VERTICAL_ONLY;
MenuShortcut srt1=new MenuShortcut(KeyEvent.VK_N);
MenuShortcut srt2=new MenuShortcut(KeyEvent.VK_O);
MenuShortcut srt3=new MenuShortcut(KeyEvent.VK_S);
MenuShortcut srt4=new MenuShortcut(KeyEvent.VK_P);
MenuShortcut srt5=new MenuShortcut(KeyEvent.VK_E);
MenuShortcut srt6=new MenuShortcut(KeyEvent.VK_X);
MenuShortcut srt7=new MenuShortcut(KeyEvent.VK_C);
MenuShortcut srt8=new MenuShortcut(KeyEvent.VK_V);
MenuShortcut srt9=new MenuShortcut(KeyEvent.VK_D);
MenuShortcut srt10=new MenuShortcut(KeyEvent.VK_F);
MenuShortcut str15=new MenuShortcut(KeyEvent.VK_A);
PrintJob p=null;
Graphics g=null;
// private DriverManager driver;
// int text_event=0,new_option=0,open_option=0,exit_option=0,window_close=0;
ConstDialog constdialog=null;
JToolBar jtb;
Container con;
JScrollPane jsp,jsp1,jsp2;
JButton btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8;
JSplitPane split_one,split_three;
Choice jFilelist,jDriver;
JList list1;
JTree tree=null;
JPanel pane5;//pane2,pane3,pane4,pane5;
DefaultMutableTreeNode root,t1;
//Box 驱动列表,textA,textB,文件过滤,总盒子;
MyFrame(String s)
{
super(s);
pane5=new JPanel();
pane5.setLayout(new BorderLayout());
Container con=this.getContentPane();
text1=new JTextArea();
text1.setLineWrap(false);
text1.addMouseListener(this);
Vector listData=new Vector();
jDriver=new Choice();
jDriver.addItemListener(this);
File[] dvs=File.listRoots();
String[] names=new String[dvs.length];
for(int i=1;i<dvs.length;i++)
{
names[i]=dvs[i].getPath();
jDriver.add(names[i]);
}
String 路径=jDriver.getSelectedItem();
root=new DefaultMutableTreeNode(路径);
File path=new File(路径);
File[] listfile=path.listFiles();
for(int j=1; j<listfile.length; j++)
{
if(listfile[j].isDirectory())
{
t1=new DefaultMutableTreeNode(listfile[j]);
root.add(t1);
}
else if(listfile[j].isFile())
{
listData.add(listfile[j]);
}
}
listData.set(0,"文件");
list1=new JList();
list1.setListData(listData);
//int n=tree.getCounts();
tree=new JTree(root);
jFilelist=new Choice();
jsp1=new JScrollPane(tree);
jsp2=new JScrollPane(list1);
pane5.add(jDriver,BorderLayout.NORTH);
pane5.add(jFilelist,BorderLayout.SOUTH);
jsp=new JScrollPane(text1);
Srd=new SerachDialog(this,"查找文件对话框",false);
Rld=new ReplaceDialog(this,"替换文件对话框",false);
jtb=new JToolBar();
//con.add(jsp,BorderLayout.CENTER);
Mf2=new TwoDialog(this,"选择字体框",true);
// Mf2.setVisible(false);
constdialog=new ConstDialog(this,"保存文对话框",true);
constdialog.setVisible(false);
Srd=new SerachDialog(this,"查找文件对话框",false);
Rld=new ReplaceDialog(this,"替换文件对话框",false);
Hdg=new HelpDialog(this,"关于记事本",true);
Goto=new GotoDialog(this,"跳到当前行",false);
Goto.确定.addActionListener(this);
Goto.取消.addActionListener(this);
// jsp1=new JScrollPane(text2);
//jsp2=new JScrollPane(text3);
popmenu=new PopupMenu();
popmenu.add(new MenuItem("删除"));
popmenu.getItem(0).addActionListener(this);
popmenu.addSeparator();
popmenu.add(new MenuItem("复制"));
popmenu.getItem(2).addActionListener(this);
popmenu.add(new MenuItem("剪贴"));
popmenu.getItem(3).addActionListener(this);
popmenu.add(new MenuItem("粘贴"));
popmenu.getItem(4).addActionListener(this);
popmenu.addSeparator();
popmenu.add(new MenuItem("全选"));
popmenu.getItem(6).addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent Item6)
{
if(Item6.getSource()==popmenu.getItem(6))
{
text1.selectAll();
}
}
});
con.add(popmenu);
Icon icon1=new ImageIcon("a.gif");
Icon icon2=new ImageIcon("b.gif");
Icon icon3=new ImageIcon("c.gif");
Icon icon4=new ImageIcon("d.gif");
Icon icon5=new ImageIcon("Cut.gif");
Icon icon6=new ImageIcon("Color.gif");
Icon icon7=new ImageIcon("help.gif");
btn1=new JButton(icon1);
btn1.setToolTipText("打开");
btn2=new JButton(icon2);
btn2.setToolTipText("保存");
btn3=new JButton(icon3);
btn3.setToolTipText("查找");
btn4=new JButton(icon4);
btn4.setToolTipText("替换");
btn1.addActionListener(this);
btn5=new JButton(icon5);
btn5.setToolTipText("剪切");
btn5.addActionListener(this);
btn6=new JButton(icon6);
btn6.setToolTipText("设置背景颜色");
btn6.addActionListener(this);
btn7=new JButton(icon7);
btn7.setToolTipText("关于记事本");
btn7.addActionListener(this);
btn1.setBorder(BorderFactory.createRaisedBevelBorder());
btn2.addActionListener(this);
btn2.setBorder(BorderFactory.createRaisedBevelBorder());
btn3.addActionListener(this);
btn3.setBorder(BorderFactory.createRaisedBevelBorder());
btn4.addActionListener(this);
btn4.setBorder(BorderFactory.createRaisedBevelBorder());
btn5.setBorder(BorderFactory.createRaisedBevelBorder());
btn6.setBorder(BorderFactory.createRaisedBevelBorder());
btn7.setBorder(BorderFactory.createRaisedBevelBorder());
jtb.setFloatable(false);
jtb.add(btn1);jtb.add(btn2);jtb.add(btn3);jtb.add(btn4);jtb.add(btn5);jtb.add(btn6);jtb.add(btn7);
con.add(jtb,BorderLayout.NORTH);
clipboard=getToolkit().getSystemClipboard(); //获取系统剪切板
menu=new Menu("文件");
menubar=new MenuBar();
menubar.add(menu);
mit1=new MenuItem("新建");
mit1.setShortcut(srt1);
mit1.addActionListener(this);
menu.add(mit1);
mit2=new MenuItem("打开");
mit2.setShortcut(srt2);
mit2.addActionListener(this);
menu.add(mit2);
mit3=new MenuItem("保存");
mit3.setShortcut(srt3);
mit3.addActionListener(this);
menu.add(mit3);
//mit14=new MenuItem("打开文本");
//mit14.addActionListener(this);
// menu.add(mit14);
mit4=new MenuItem("别存为....");
mit4.addActionListener(this);
menu.add(mit4);
menu.addSeparator();
mit13=new MenuItem("打印");
mit13.setShortcut(srt4);
mit13.addActionListener(this);
menu.add(mit13);
menu.addSeparator();
mit5=new MenuItem("退出");
mit5.setShortcut(srt5);
mit5.addActionListener(this);
menu.add(mit5);
menu1=new Menu("编辑");
menubar.add(menu1);
mit6=new MenuItem("剪切");
mit6.setShortcut(srt6);
mit6.addActionListener(this);
menu1.add(mit6);
mit7=new MenuItem("复制");
mit7.setShortcut(srt7);
// mit7.setEnabled(false);
mit7.addActionListener(this);
menu1.add(mit7);
mit8=new MenuItem("粘贴");
mit8.setShortcut(srt8);
mit8.addActionListener(this);
mit8.setEnabled(false);
menu1.add(mit8);
mit9=new MenuItem("全部删除");
mit9.setShortcut(srt9);
mit9.addActionListener(this);
menu1.add(mit9);
menu1.addSeparator();
find=new MenuItem("查找");
find.addActionListener(this);
Srd.btn1.addActionListener(this);
Srd.btn2.addActionListener(this);
menu1.add(find);
replace=new MenuItem("替换");
replace.addActionListener(this);
Rld.btn1.addActionListener(this);
Rld.btn2.addActionListener(this);
Rld.btn3.addActionListener(this);
Rld.btn4.addActionListener(this);
menu1.add(replace);
jump=new MenuItem("跳行");
jump.addActionListener(this);
menu1.add(jump);
menu1.addSeparator();
mit10=new MenuItem("时间/日期");
mit10.addActionListener(this);
menu1.add(mit10);
mit15=new MenuItem("全选");
mit15.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent aet)
{
if(aet.getSource()==mit15)
{
text1.selectAll();
}
}
});
menu1.add(mit15);
menu2=new Menu("格式");
menubar.add(menu2);
自动换行=new CheckboxMenuItem("自动换行");
自动换行.addItemListener(this);
menu2.add(自动换行);
mit11=new MenuItem("选择字体");
mit11.setShortcut(srt10);
mit11.addActionListener(this);
menu2.add(mit11);
menu2.addSeparator();
mit12=new MenuItem("设置背景颜色");
mit12.addActionListener(this);
menu2.add(mit12);
abort=new Menu("帮助");
menubar.add(abort);
mit16=new MenuItem("记事本帮助");
mit16.addActionListener(this);
abort.add(mit16);
abort.addSeparator();
help=new MenuItem("关于记事本");
help.addActionListener(this);
abort.add(help);
窗体风格=new Menu("窗体风格");
menubar.add(窗体风格);
Window风格=new MenuItem("Window 风格");
Window风格.addActionListener(this);
窗体风格.add(Window风格);
窗体风格.addSeparator();
Metal风格=new MenuItem("Metal 风格");
Metal风格.addActionListener(this);
窗体风格.add(Metal风格);
窗体风格.addSeparator();
Motif风格=new MenuItem("Motif 风格");
Motif风格.addActionListener(this);
窗体风格.add(Motif风格);
// add(jsp);
constdialog. 确定.addActionListener(this);
constdialog.否.addActionListener(this);
constdialog.退出.addActionListener(this);
Mf2.btn1.addActionListener(this);
fileopen=new FileDialog(this,"打开文件对话框",FileDialog.LOAD);
fileopen.setVisible(false);
filesave=new FileDialog(this,"保存文件对话框",FileDialog.SAVE);
filesave.setVisible(false);
setMenuBar(menubar);
split_three=new JSplitPane(JSplitPane.VERTICAL_SPLIT,jsp1,jsp2);
pane5.add(split_three);
con.add(pane5);
split_one=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,pane5,jsp);
//split_one.scrollRectToVisible(false);
con.add(split_one);
Mf2. addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
Mf2.setVisible(false);
}
});
constdialog.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
constdialog.setVisible(false);
}
});
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
String s=text1.getText();
char a[]=s.toCharArray();
if(a.length==0)
{
System.exit(0);
}
else
{
int h=JOptionPane.showConfirmDialog(text1,"你有文件没保存,确定退出吗?","确认对话框",JOptionPane.YES_NO_OPTION);
if(h==JOptionPane.YES_OPTION)
{
System.exit(0);
}
else if(h==JOptionPane.NO_OPTION)
{
filesave.setVisible(true);
}
}
}
});
setVisible(true);
// text1.setFocus(true);
setBounds(130,30,800,700);
validate();
}
public void mousePressed(MouseEvent emouse)
{
x=emouse.getX();
y=emouse.getY();
if(emouse.getModifiers()==InputEvent.BUTTON3_MASK)
{
popmenu.show(text1,x,y);
}
}
public void mouseReleased(MouseEvent emouse){}
public void mouseExited(MouseEvent emouse){}
public void mouseEntered(MouseEvent emouse){}
public void mouseClicked(MouseEvent emouse){}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==mit2)
{
fileopen.setVisible(true);
text1.setText(null);
String s;
if(fileopen.getFile()!=null)
{
try{
File file=new File(fileopen.getDirectory(),fileopen.getFile()); //获取当前目录下选定的文件
in=new FileReader(file);
String title=fileopen.getFile();
setTitle(title+" 记事本");
cin=new BufferedReader(in);
while((s=cin.readLine())!=null)
text1.append(s+'\n');
cin.close();
in.close();
}
catch(IOException e2){}
}
}
if(e.getSource()==mit3)
{
try
{
File file=new File(fileopen.getDirectory(),fileopen.getFile());
tofile=new FileWriter(file);
out=new BufferedWriter(tofile);
out.write(text1.getText(),0,(text1.getText()).length());
out.flush();
out.close();
tofile.close();
}
catch(Exception exception){}
}
if(e.getSource()==mit4)
{
filesave.setVisible(true);
if(filesave.getFile()!=null)
{
try{
File file=new File(filesave.getDirectory(),filesave.getFile());
tofile=new FileWriter(file);
out=new BufferedWriter(tofile);
out.write(text1.getText(),0,(text1.getText()).length());
out.flush();
out.close();
tofile.close();
}
catch(IOException e2){}
}
}
if(e.getSource()==mit5)
{
String s=text1.getText();
char a[]=s.toCharArray();
//for(int i=0;i<a.length;i++)
if(a.length==0)
{
System.exit(0);
}
else
{
int n=JOptionPane.showConfirmDialog(this,"你有文件没保存,确定退出吗?","确认对话框",JOptionPane.YES_NO_OPTION);
if(n==JOptionPane.YES_OPTION)
{
System.exit(0);
}
else if(n==JOptionPane.NO_OPTION)
{
filesave.setVisible(true);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -