?? textediter.java
字號:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.border.*;
public class Textediter implements ActionListener//,DocumentListener//,FilenameFilter
{JFrame f=new JFrame("無標題 - 記事本");
JTextArea tf=new JTextArea();
// tf.addDocumentListener(this);
JScrollPane jsp=new JScrollPane(tf);
JMenuBar bar=new JMenuBar();
JMenu menu1=new JMenu("文件(F)");
JMenu menu2=new JMenu("編輯(E)");
JMenu menu3=new JMenu("格式(O)");
JMenu menu4=new JMenu("查看(V)");
JMenu menu5=new JMenu("幫助(H)");
JMenuItem newf=new JMenuItem(" 新建(N) Ctrl+N");
JMenuItem openf=new JMenuItem(" 打開(O) Ctrl+O");
JMenuItem savef=new JMenuItem(" 保存(S) Ctrl+S");
JMenuItem saveasf=new JMenuItem(" 另存為(A)");
JMenuItem quitf=new JMenuItem(" 退出(X)");
JMenuItem cancel=new JMenuItem(" 撤消(U) Ctrl+U");
JMenuItem copy=new JMenuItem(" 復制(C) Ctrl+C");
JMenuItem cut=new JMenuItem(" 剪切(T) Ctrl+X");
JMenuItem paste=new JMenuItem(" 粘貼(P) Ctrl+V");
JMenuItem search=new JMenuItem(" 查找(F)");
JMenuItem replace=new JMenuItem(" 替換(R)");
JMenuItem selectall=new JMenuItem(" 全選(A) Ctrl+A");
JMenuItem del=new JMenuItem(" 刪除(L) Delete");
JMenuItem tmda=new JMenuItem(" 時間/日期(D)");
JMenuItem gesi=new JMenuItem(" 字體(F)");
JMenuItem autorc=new JMenuItem(" 自動換行(W)");
JPopupMenu pmenu=new JPopupMenu();
JMenuItem cancel1=new JMenuItem(" 撤消(U) Ctrl+U");
JMenuItem copy1=new JMenuItem(" 復制(C) Ctrl+C");
JMenuItem cut1=new JMenuItem(" 剪切(T) Ctrl+X");
JMenuItem paste1=new JMenuItem(" 粘貼(P) Ctrl+V");
JMenuItem del1=new JMenuItem(" 刪除(L) Delete");
JMenuItem selall=new JMenuItem(" 全選(A) Ctrl+A");
//pmenu.add(new JMenuItem(""));
File file;
JDialog dialog;
JPanel jp;
JLabel lb1,lb2,lb3,lb4,lb5;
JComboBox cb1,cb2,cb3;
JButton btn1,btn2,btn3,btn4,btn5,btn6;
//Button btn4;
TextField fd1=new TextField("");
TextField fd2=new TextField("");
Container diacp;
//Point point;
String cbxstr1,cbxstr2,cbxstr3,buffer,temptext;
int cbxint2=0,cbxint3=10;int cace=1;
boolean isopen=false,issaved=false,isnewf=true,iskey=false;
int posi=0,isbtn3=0;String serp;
public Textediter()
{
f.getContentPane().add(jsp);
//bar.setOpaque(true);
f.setJMenuBar(bar);//jsp.setBackground(Color.white);
f.setBackground(Color.white);
tf.setBackground(Color.white);
tf.setFont(new Font("宋體",Font.BOLD,25));
tf.addMouseListener(new MyMouseAdapter());
tf.addKeyListener(new MyKeyAdapter());
menu1.add(newf);menu1.add(openf);menu1.add(savef);menu1.add(saveasf);menu1.addSeparator();menu1.add(quitf);
menu2.add(cancel);menu2.addSeparator();menu2.add(cut);menu2.add(copy);menu2.add(paste);menu2.add(del);menu2.addSeparator();
menu2.add(search);menu2.add(replace);menu2.addSeparator();
menu2.add(selectall);menu2.add(tmda);
menu3.add(autorc);menu3.add(gesi);
bar.add(menu1);bar.add(menu2);bar.add(menu3);bar.add(menu4);bar.add(menu5);
menu1.setMnemonic('F');
menu2.setMnemonic('E');
menu3.setMnemonic('O');
menu4.setMnemonic('V');
menu5.setMnemonic('H');
newf.setMnemonic('N');
openf.setMnemonic('O');
savef.setMnemonic('S');
saveasf.setMnemonic('A');
quitf.setMnemonic('X');
cancel.setMnemonic('U');
cut.setMnemonic('T');
copy.setMnemonic('C');
paste.setMnemonic('P');
del.setMnemonic('L');
selectall.setMnemonic('A');
cancel1.setMnemonic('U');
cut1.setMnemonic('T');
copy1.setMnemonic('C');
paste1.setMnemonic('P');
del1.setMnemonic('L');
selall.setMnemonic('A');
search.setMnemonic('F');
replace.setMnemonic('R');
tmda.setMnemonic('D');
autorc.setMnemonic('W');
gesi.setMnemonic('F');
newf.addActionListener(this);
openf.addActionListener(this);
savef.addActionListener(this);
saveasf.addActionListener(this);
quitf.addActionListener(this);
cancel.addActionListener(this);
cut.addActionListener(this);
copy.addActionListener(this);
paste.addActionListener(this);
del.addActionListener(this);
search.addActionListener(this);
replace.addActionListener(this);
tmda.addActionListener(this);
selectall.addActionListener(this);
autorc.addActionListener(this);
gesi.addActionListener(this);
tf.setLineWrap(true);autorc.setLabel("√自動換行(W)");//setName("√自動換行(W)");
pmenu.add(cancel1);pmenu.addSeparator();cancel1.addActionListener(this);
pmenu.add(cut1);cut1.addActionListener(this);
pmenu.add(copy1);copy1.addActionListener(this);
pmenu.add(paste1);paste1.addActionListener(this);
pmenu.add(del1);del1.addActionListener(this);
pmenu.addSeparator();
pmenu.add(selall);selall.addActionListener(this);
int fnub=1;
file=new File("新建 文本文檔.txt");
while(file.exists()==true)
{file=new File("新建 文本文檔("+fnub+").txt");
fnub++;
}
f.setSize(600,500);
f.setLocation(250,200);
f.setVisible(true);
f.addWindowListener(new WinLis());
}
//public void changedUpdate(DocumentEvent e)
//{
//}
//pubilc boolean accept(File fl,".txt")
// {
// }
public void actionPerformed(ActionEvent e)
{if(e.getSource()==newf)
{int ms;
//if(isnewf==true&&)
if(issaved==false&&tf.getText().length()!=0)
{ms=JOptionPane.showConfirmDialog(f,"文件"+file.getAbsolutePath()+"\n已經改變,想保存文件嗎?","記事本",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);
if(ms==0)
{if(isnewf==true&&tf.getText().length()!=0)
{FileDialog fdag=new FileDialog(f,"保存",1);
fdag.setSize(300,250);
fdag.setVisible(true);
if(fdag.getFile()!=null)
{
String st=fdag.getDirectory()+fdag.getFile();
try
{ file=new File(st);
FileOutputStream fout=new FileOutputStream(file);
DataOutputStream out=new DataOutputStream(fout);
out.writeBytes(tf.getText());//tf.setText("");f.setTitle("無標題 - 記事本");
JOptionPane.showMessageDialog(f,"文件已成功保存在:\n"+file.getAbsolutePath(),"保存信息",JOptionPane.PLAIN_MESSAGE);
//f.setTitle(file.getName().substring(0,file.getName().indexOf('.'))+" - 記事本");
tf.setText("");
f.setTitle("無標題 - 記事本");
isnewf=false;issaved=true;
}
catch(Exception E)
{System.out.println("I/O錯誤!");}
}
}
else
{try
{FileOutputStream fout=new FileOutputStream(file);
DataOutputStream out=new DataOutputStream(fout);
out.writeBytes(tf.getText());
out.close();
JOptionPane.showMessageDialog(f,"文件"+file.getAbsolutePath()+"\n已成功保存!","保存信息",JOptionPane.PLAIN_MESSAGE);
tf.setText("");
f.setTitle("無標題 - 記事本");
isnewf=false;issaved=true;
}
catch(Exception E)
{System.out.println("I/O錯誤!");}
}
}
if(ms==1){tf.setText("");}
}
int fnub=1;
file=new File("新建 文本文檔.txt");
while(file.exists()==true)
{file=new File("新建 文本文檔("+fnub+").txt");fnub++;
}
isnewf=true;issaved=false;
}
if(e.getSource()==openf)
{
FileDialog fdag=new FileDialog(f,"打開");
fdag.setSize(300,250);
fdag.setVisible(true);
if(fdag.getFile()!=null)
{String st=fdag.getDirectory()+fdag.getFile();
file=new File(st);
try
{FileInputStream fin=new FileInputStream(file);
// DataInputStream in=new DataInputStream(fin);
int len=(int)file.length();
byte bt[]=new byte[len];
fin.read(bt,0,len);
st=new String(bt);
//st=in.readUTF();
tf.setText(st);
f.setTitle(file.getName().substring(0,file.getName().indexOf('.'))+" - 記事本");
isnewf=false;issaved=true;
}
catch(Exception E)
{System.out.println("I/O錯誤!");}
}
}
if(e.getSource()==savef)
{if(isnewf==true)
{FileDialog fdag=new FileDialog(f,"保存",1);
fdag.setSize(300,250);
fdag.setVisible(true);
if(fdag.getFile()!=null)
{
String st=fdag.getDirectory()+fdag.getFile();
try
{ file=new File(st);
FileOutputStream fout=new FileOutputStream(file);
DataOutputStream out=new DataOutputStream(fout);
out.writeBytes(tf.getText());//tf.setText("");f.setTitle("無標題 - 記事本");
JOptionPane.showMessageDialog(f,"文件已成功保存在:\n"+file.getAbsolutePath(),"保存信息",JOptionPane.PLAIN_MESSAGE);
f.setTitle(file.getName().substring(0,file.getName().indexOf('.'))+" - 記事本");
isnewf=false;issaved=true;
}
catch(Exception E)
{System.out.println("I/O錯誤!");
}
}
}
else
{try
{FileOutputStream fout=new FileOutputStream(file);
DataOutputStream out=new DataOutputStream(fout);
out.writeBytes(tf.getText());
out.close();
JOptionPane.showMessageDialog(f,"文件"+file.getAbsolutePath()+"\n已成功保存!","保存信息",JOptionPane.PLAIN_MESSAGE);
isnewf=false;issaved=true;
}
catch(Exception E)
{System.out.println("I/O錯誤!");}
}
}
if(e.getSource()==saveasf)
{FileDialog fdag=new FileDialog(f,"另存為",1);
fdag.setSize(300,250);
fdag.setVisible(true);
if(fdag.getFile()!=null)
{
String st=fdag.getDirectory()+fdag.getFile();
try
{ file=new File(st);
FileOutputStream fout=new FileOutputStream(file);
DataOutputStream out=new DataOutputStream(fout);
out.writeBytes(tf.getText());//tf.setText("");f.setTitle("無標題 - 記事本");
JOptionPane.showMessageDialog(f,"文件已成功保存在:\n"+file.getCanonicalPath(),"另存為信息",JOptionPane.PLAIN_MESSAGE);
f.setTitle(file.getName().substring(0,file.getName().indexOf('.'))+" - 記事本");
}
catch(Exception E)
{System.out.println("I/O錯誤!");
}isnewf=false;issaved=true;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -