📄 note.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.sql.*;
import java.awt.print.*;
import java.awt.datatransfer.*;
import java.net.*;
import java.util.*;
public class Note
{
public static void main(String args[])
{
new Jishiben_frame();
}
}
class Jishiben_frame extends Frame implements ActionListener
{
FileDialog filedialog_save,filedialog_load;//声明2个文件对话框
TextArea text;
int f=-1,start=0,end=0;
BufferedReader in;
FileReader file_reader;
BufferedWriter out;
FileWriter tofile;
String temp="",检测="";
MenuBar bar=null;
Menu Wenjian,Bianji,bangzhu;
MenuItem item01,item02,item04,item05,item06,item11,item12,item13,item14,item15,item16,item17,item31;
Jishiben_frame()
{
super("新建 文本文档 -记事本");
text=new TextArea();
add(text,BorderLayout.CENTER);
bar=new MenuBar();
Wenjian=new Menu("文件(O)");
Bianji=new Menu("编辑(E)");
bangzhu=new Menu("帮助(H)");
item01=new MenuItem("新建 (N)");
MenuShortcut keynew=new MenuShortcut(KeyEvent.VK_N);
item01.setShortcut(keynew);
item02=new MenuItem("打开...(O)");
MenuShortcut keyopen=new MenuShortcut(KeyEvent.VK_O);
item02.setShortcut(keyopen);
item04=new MenuItem("另存为...(A)");
item05=new MenuItem("打印...(P)");
MenuShortcut keyprint=new MenuShortcut(KeyEvent.VK_P);
item05.setShortcut(keyprint);
item06=new MenuItem("退出(X)");
item11=new MenuItem("撤消(U)");
MenuShortcut keyundo=new MenuShortcut(KeyEvent.VK_Z);
item11.setShortcut(keyundo);
item12=new MenuItem("剪切(T)");
MenuShortcut keycut=new MenuShortcut(KeyEvent.VK_X);
item12.setShortcut(keycut);
item13=new MenuItem("复制(C)");
MenuShortcut keycope=new MenuShortcut(KeyEvent.VK_C);
item13.setShortcut(keycope);
item14=new MenuItem("粘贴(P)");
MenuShortcut keypaste=new MenuShortcut(KeyEvent.VK_V);
item14.setShortcut(keypaste);
item15=new MenuItem("全选(A)");
MenuShortcut keyall=new MenuShortcut(KeyEvent.VK_A);
item15.setShortcut(keyall);
item16=new MenuItem("替换(R)");
MenuShortcut keytihuan=new MenuShortcut(KeyEvent.VK_H);
item16.setShortcut(keytihuan);
item17=new MenuItem("删除(L)");
item31=new MenuItem("关于记事本(A)");
Wenjian.add(item01);
Wenjian.add(item02);
Wenjian.add(item04);
Wenjian.add(item05);
Wenjian.add(item06);
Bianji.add(item11);
Bianji.add(item12);
Bianji.add(item13);
Bianji.add(item14);
Bianji.add(item15);
Bianji.add(item16);
Bianji.add(item17);
bangzhu.add(item31);
bar.add(Wenjian);
bar.add(Bianji);
bar.add(bangzhu);
setMenuBar(bar);
item01.addActionListener(this);
item02.addActionListener(this);
item04.addActionListener(this);
item05.addActionListener(this);
item06.addActionListener(this);
item11.addActionListener(this);
item12.addActionListener(this);
item13.addActionListener(this);
item14.addActionListener(this);
item15.addActionListener(this);
item16.addActionListener(this);
item17.addActionListener(this);
item31.addActionListener(this);
setVisible(true);
setBounds(150,150,800,500);
validate();
filedialog_save=new FileDialog(this,"保存文件话框",FileDialog.SAVE);
filedialog_load=new FileDialog(this,"打开文件话框",FileDialog.LOAD);
filedialog_save.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{ filedialog_save.setVisible(false);
}
});
filedialog_load.addWindowListener(new WindowAdapter()//对话框增加适配器
{public void windowClosing(WindowEvent e)
{ filedialog_load.setVisible(false);
}
});
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e1)
{
if(!text.getText().equals(检测))
{
try{int cache=JOptionPane.showConfirmDialog(null,"保存文件吗?");
if(JOptionPane.OK_OPTION==cache){save();dispose();System.exit(0);}
else if(JOptionPane.NO_OPTION==cache){dispose();System.exit(0);}
}
catch(Exception ee){}
}
else System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==item01)
{
if(!text.getText().equals(检测))
{
int n=JOptionPane.showConfirmDialog(this,"要保存吗?","记事本",JOptionPane.YES_NO_CANCEL_OPTION);
if(n==JOptionPane.YES_OPTION){save();text.setText("");}
else if(n==JOptionPane.NO_OPTION){text.setText("");setTitle("新建 文本文档 -记事本");}
}
else setTitle("新建 文本文档 -记事本");
}
if(e.getSource()==item02)
{
load();
}
if(e.getSource()==item04)
{
save();
}
if(e.getSource()==item05)
{
PrintJob p=null; //声明一个PrintJob对象。
Graphics g=null;
p=getToolkit().getPrintJob(this,"ok",null);
g=p.getGraphics(); //p获取一个用于打印的 Graphics对象。
g.translate(120,200);
this.printAll(g); //打印当前窗口及其子组件。
g.dispose(); //释放对象 g。
p.end();
}
if(e.getSource()==item06)
{
if(!text.getText().equals(检测))
{
int n=JOptionPane.showConfirmDialog(this,"要保存吗?","记事本",JOptionPane.YES_NO_CANCEL_OPTION);
if(n==JOptionPane.YES_OPTION){save();System.exit(0);}
else if(n==JOptionPane.NO_OPTION){System.exit(0);}
}
else System.exit(0);
}
if(e.getSource()==item11)
{
switch(f)
{
case 1:text.replaceRange(temp,start,end);break;
case 2:text.replaceRange(temp,start,end);break;
case 3:text.select(0,0);break;
case 4:text.replaceRange(temp,start,end);break;
case -1:break;
}
}
//**********以下是剪贴,复制,粘贴
Clipboard clipboard=null;
clipboard=getToolkit().getSystemClipboard();//获取系统剪贴板。
if(e.getSource()==item12)
{
temp=text.getSelectedText(); //拖动鼠标选取文本。
StringSelection s=new StringSelection(temp);
clipboard.setContents(s,null);
start=text.getSelectionStart();
end =text.getSelectionEnd();
text.replaceRange("",start,end) ; //从Text中删除被选取的文本。
f=1;
}
if(e.getSource()==item13)
{
temp=text.getSelectedText(); //拖动鼠标选取文本。
StringSelection s=new StringSelection(temp);
clipboard.setContents(s,null);
}
if(e.getSource()==item14)
{
Transferable contents=clipboard.getContents(this);
DataFlavor flavor= DataFlavor.stringFlavor;
if( contents.isDataFlavorSupported(flavor))
{
try{ String str;
str=(String)contents.getTransferData(flavor);
start=text.getSelectionStart();
end =text.getSelectionEnd();
temp="";
f=2;
text.replaceRange(str,start,end) ; //从Text中添加复制的文本。
end =text.getSelectionEnd()+str.length();
}
catch(Exception ee){}
}
}
if(e.getSource()==item15)
{
text.select(0,text.getText().length());
f=3;
}
///以下是替换查找
if(e.getSource()==item16)
{
MydialogTiHuan dialog=new MydialogTiHuan(this,"替换",true,this);
dialog.setVisible(true);
}
if(e.getSource()==item17)
{
start=text.getSelectionStart();
end =text.getSelectionEnd();
temp=text.getSelectedText();
text.replaceRange("",start,end) ; //从Text中删除被选取的文本。
end=temp.length();
f=4;
}
//以下是帮助
if(e.getSource()==item31)
{
JOptionPane.showMessageDialog(this,"版权:小羽制作","关于记事本",JOptionPane.INFORMATION_MESSAGE);
}
}
public void save()
{
filedialog_save.setVisible(true);
if(filedialog_save.getFile()!=null)
{
try {
File file=new File(filedialog_save.getDirectory(),filedialog_save.getFile());
tofile=new FileWriter(file);
out=new BufferedWriter(tofile);
out.write(text.getText(),0,(text.getText()).length());
out.flush();
out.close();
tofile.close();
}
catch(IOException e2){}
}
}
public void load()
{
filedialog_load.setVisible(true);
// text.setText(null);
String s;
if(filedialog_load.getFile()!=null)
{
try{
text.setText(null);
File file= new File(filedialog_load.getDirectory(),filedialog_load.getFile());
String file_name=file.getName();
setTitle(file_name);
file_reader=new FileReader(file);
in=new BufferedReader(file_reader);
while((s=in.readLine())!=null)
text.append(s+'\n');
in.close();
file_reader.close();
}
catch(IOException e2){}
}
}
}
//*********查找,替换类
class MydialogTiHuan extends Dialog implements ActionListener
{
int n=0,h=0,t=0;
Label lab1,lab2;
String s="",str="",flag="";
TextField textChazhao,textTiHuan;
Button button1,button2,button3;
Jishiben_frame hua;
MydialogTiHuan(Frame f,String s,boolean b,Jishiben_frame hua)
{
super(f,s,b);
this.hua=hua;
this.setLayout(null);
//text=new TextArea();
button1=new Button("查找");
button1.setBounds(new Rectangle(273, 32, 91, 20));
add(button1);
button2=new Button("替换");
button2.setBounds(new Rectangle(273, 61, 91, 20));
add(button2);
button3=new Button("取消");
button3.setBounds(new Rectangle(273, 90, 91, 20));
add(button3);
lab1=new Label("查找内容:");
lab1.setBounds(new Rectangle(7, 35, 72, 19));
add(lab1);
lab2=new Label("替换为:");
lab2.setBounds(new Rectangle(7, 61, 72, 19));
add(lab2);
textChazhao=new TextField();
textChazhao.setBounds(new Rectangle(78, 37, 182, 19));
add(textChazhao);
textTiHuan=new TextField();
textTiHuan.setBounds(new Rectangle(78, 61, 182, 19));
add(textTiHuan);
setBounds(300,250,380, 150);
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{setVisible(false);}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button1)
{
if(t==-1){n=0;h=0;}
str=hua.text.getText();
while(flag!=s){n=0;h=0;}
h=n;
str=str.substring(n,str.length());
s=textChazhao.getText();
flag=s;
n=str.indexOf(s);
StringTokenizer fenxi=new StringTokenizer(str.substring(h,n),"\n");
int a=fenxi.countTokens();
if(n>a&&a!=1)n=n-a+1;
if(n!=(-1))
{
hua.text.select(n,n+s.length());
n=n+s.length();
}
t=1;
}
if(e.getSource()==button2)
{
if(t==1){n=0;h=0;}
String b;
str=hua.text.getText();
while(flag!=s){n=0;h=0;}
h=n;
str=str.substring(n,str.length());
str=hua.text.getText();
s=textChazhao.getText();
b=textTiHuan.getText();
flag=s;
n=str.indexOf(s);
StringTokenizer fenxi=new StringTokenizer(str.substring(h,n),"\n");
int a=fenxi.countTokens();
if(n>a&&a!=1)n=n+1;
if(n!=(-1))
{
// hua.text.select(n,n+s.length());
hua.text.replaceRange(b,n,n+s.length());
n=n+s.length();
}
t=-1;
}
if(e.getSource()==button3)
{dispose();}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -