mytexteditor.java
来自「简单文本编辑器」· Java 代码 · 共 119 行
JAVA
119 行
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.lang.*;
public class MyTextEditor extends Frame implements ActionListener
{
TextArea text;
MenuBar menubar;
Menu file,util;
MenuItem open,save,quit,count,reverse;
FileReader readfile;BufferedReader input;
FileWriter writefile;BufferedWriter output;
FileDialog savefile,openfile;
Dialog countcharacter;TextField mycount;Label label;
MyTextEditor()
{
super("text editor");
setSize(300,350);
setVisible(true);
menubar=new MenuBar();
file=new Menu("File");
open=new MenuItem("Open");save=new MenuItem("Save");quit=new MenuItem("Quit");
open.addActionListener(this);save.addActionListener(this);quit.addActionListener(this);
file.add(open);file.add(save);file.addSeparator();file.add(quit);
util=new Menu("Util");
count=new MenuItem("Count");reverse=new MenuItem("Reverse");
count.addActionListener(this);reverse.addActionListener(this);
util.add(count);util.add(reverse);
menubar.add(file);menubar.add(util);
setMenuBar(menubar);
text=new TextArea(200,200);add(text,BorderLayout.CENTER);
savefile=new FileDialog(this,"保存文件对话框",FileDialog.SAVE);
openfile=new FileDialog(this,"打开文件对话框",FileDialog.LOAD);
countcharacter=new Dialog(this,"计数对话框",false);
label=new Label("显示计数结果");
mycount=new TextField(30);
countcharacter.add(label,BorderLayout.NORTH);countcharacter.add(mycount,BorderLayout.CENTER);
countcharacter.pack();
openfile.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{openfile.setVisible(false);
}
});
savefile.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{savefile.setVisible(false);
}
});
countcharacter.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{countcharacter.setVisible(false);
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==open)
{ openfile.setVisible(true);
text.setText(null);
String s;
if(openfile.getFile()!=null)
{
try{
File in=new File(openfile.getDirectory(),openfile.getFile());
readfile=new FileReader(in);
input=new BufferedReader(readfile);
while((s=input.readLine())!=null)text.append(s+'\n');
input.close();readfile.close();
}catch(IOException e2) {}
}
}
else if(e.getSource()==save)
{
savefile.setVisible(true);
if(savefile.getFile()!=null)
{
try{
File out=new File(savefile.getDirectory(),savefile.getFile());
writefile=new FileWriter(out);
output=new BufferedWriter(writefile);
output.write(text.getText(),0,(text.getText()).length());
output.flush();output.close();writefile.close();
}catch(IOException e2) {}
}
}
else if(e.getSource()==count)
{
countcharacter.setVisible(true);
String s=String.valueOf((text.getText()).length());
mycount.setText(s);
}
else if(e.getSource()==reverse)
{
String s=text.getText();
StringTokenizer fenxi=new StringTokenizer(s,"\n");
int n=fenxi.countTokens();
String a[]=new String[n];
for(int t=0;t<n;t++){String temp=fenxi.nextToken();a[t]=temp;}
for(int t=0;t<n;t++)
{ char b[]=a[t].toCharArray();
for(int j=0,i=a[t].length()-1;j<=i;j++,i--)
{ char c=b[j];b[j]=b[i];b[i]=c;}
String ss=new String(b);
if(t==0)text.setText(ss+'\n');
else text.append(ss+'\n');
}
}
else if(e.getSource()==quit)
{ dispatchEvent(new WindowEvent(MyTextEditor.this,WindowEvent.WINDOW_CLOSING));
}
}
public static void main(String args[])
{ MyTextEditor f=new MyTextEditor();
f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?