📄 awttest16.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class ConfirmDialog extends Dialog implements ActionListener{
private Button okay=new Button("Okay");
private Button cancel=new Button("Cancel");
private Label label=new Label("Are you sure?",Label.CENTER);
public boolean isOkay=false;
private class windowCloser extends WindowAdapter{
public void windowClosing(WindowEvent we){
ConfirmDialog.this.isOkay=false;
ConfirmDialog.this.hide();
}
}
public ConfirmDialog(Frame parent){
this(parent,"Please confirm","Are you sure?");
}
public ConfirmDialog(Frame parent,String title,String question){
super(parent,title,true);
label.setText(question);
setup();
okay.addActionListener(this);
cancel.addActionListener(this);
addWindowListener(new windowCloser());
setResizable(false);
pack();show();
}
private void setup(){
Panel buttons=new Panel();
buttons.setLayout(new FlowLayout());
buttons.add(okay);buttons.add(cancel);
setLayout(new BorderLayout());
add("Center",label);add("South",buttons);
}
public void actionPerformed(ActionEvent ac){
isOkay=(ac.getSource()==okay);
hide();
}
}
public class Awttest16 extends Frame implements ActionListener{
private static String selected="";
private static String openfile=new String();
private static String dir=new String();
private MenuItem fnew=new MenuItem("New");
private MenuItem fopen=new MenuItem("Open");
private MenuItem fsave=new MenuItem("Save");
private MenuItem fsaveas=new MenuItem("Save as");
private MenuItem fexit=new MenuItem("Exit");
private MenuItem copy=new MenuItem("Copy");
private MenuItem paste=new MenuItem("Paste");
private MenuItem delete=new MenuItem("Delete");
private MenuItem about=new MenuItem("About");
TextArea txt=new TextArea(50,25);
public Awttest16(){
super("简单文字编辑器");
Menu file=new Menu("File");
Menu edit=new Menu("Edit");
Menu help=new Menu("Help");
file.add(fnew);
file.add(fopen);
file.add(fsave);
file.add(fsaveas);
file.add(fexit);
edit.add(copy);
edit.add(paste);
edit.add(delete);
help.add(about);
MenuBar bar=new MenuBar();
bar.add(file);
bar.add(edit);
bar.add(help);
setMenuBar(bar);
add(txt);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
fnew.addActionListener(this);
fopen.addActionListener(this);
fsave.addActionListener(this);
fsaveas.addActionListener(this);
fexit.addActionListener(this);
copy.addActionListener(this);
paste.addActionListener(this);
delete.addActionListener(this);
about.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==fnew){
if(!txt.getText().equals("")){
ConfirmDialog fnew=new ConfirmDialog(this,"新建文件","需要保存文件吗?");
if(fnew.isOkay){
{
String filetext=txt.getText();
FileDialog d=new FileDialog(this,"保存文件",FileDialog.SAVE);
d.setFile("*.txt");
d.setDirectory(".");
d.setVisible(true);
if(d.getFile()!=null){
String savefile=new String(d.getFile());
String savedir=new String(d.getDirectory());
try{
byte[] b=filetext.getBytes();
FileOutputStream out=new FileOutputStream(savedir+savefile);
out.write(b);
}
catch(Exception ex){
System.out.println(ex.toString());
}
}
}
}
}
txt.setText("");
}
if(e.getSource()==fopen){
FileDialog d=new FileDialog(this,"打开文件");
d.setFile("*.txt");
d.setDirectory(".");
d.setVisible(true);
if(d.getFile()!=null){
try{openfile=d.getFile();
dir=d.getDirectory();
byte[] b=new byte[2056];
BufferedInputStream in=new BufferedInputStream(new FileInputStream(dir+openfile));
int bytes=in.read(b,0,2056);
String filetext=new String(b);
txt.setText(filetext);
}
catch(Exception fne){System.out.println(fne.toString());
}
}
}
if(e.getSource()==fsave){
String filetext=txt.getText();
if(!openfile.equals("")){
try{
byte[] b=filetext.getBytes();
FileOutputStream out=new FileOutputStream(dir+openfile);
out.write(b);
}
catch(Exception ex){
System.out.println(ex.toString());
}
}
else
{String filetext1=txt.getText();
FileDialog d=new FileDialog(this,"保存文件",FileDialog.SAVE);
d.setFile("*.txt");
d.setDirectory(".");
d.setVisible(true);
if(d.getFile()!=null){
String savefile=new String(d.getFile());
String savedir=new String(d.getDirectory());
try{
byte[] b=filetext1.getBytes();
FileOutputStream out=new FileOutputStream(savedir+savefile);
out.write(b);
}
catch(Exception ex){
System.out.println(ex.toString());
}
}
}
}
if(e.getSource()==fsaveas){
String filetext=txt.getText();
FileDialog d=new FileDialog(this,"保存文件",FileDialog.SAVE);
d.setFile("*.txt");
d.setDirectory(".");
d.setVisible(true);
if(d.getFile()!=null){
String savefile=new String(d.getFile());
String savedir=new String(d.getDirectory());
try{
byte[] b=filetext.getBytes();
FileOutputStream out=new FileOutputStream(savedir+savefile);
out.write(b);
}
catch(Exception ex){
System.out.println(ex.toString());
}
}
}
if(e.getSource()==fexit)
{ if(!txt.getText().equals("")){
ConfirmDialog fnew=new ConfirmDialog(this,"新建文件","需要保存文件吗?");
if(fnew.isOkay){
{
String filetext=txt.getText();
FileDialog d=new FileDialog(this,"保存文件",FileDialog.SAVE);
d.setFile("*.txt");
d.setDirectory(".");
d.setVisible(true);
if(d.getFile()!=null){
String savefile=new String(d.getFile());
String savedir=new String(d.getDirectory());
try{
byte[] b=filetext.getBytes();
FileOutputStream out=new FileOutputStream(savedir+savefile);
out.write(b);
}
catch(Exception ex){
System.out.println(ex.toString());
}
}
}
}
}
System.exit(0); }
if(e.getSource()==copy){
selected=txt.getSelectedText();
}
if(e.getSource()==paste){
int pos=txt.getCaretPosition();
txt.insert(selected,pos);
}
if(e.getSource()==delete){
String del=txt.getSelectedText();
int delhead=txt.getCaretPosition();
int delend=delhead+del.length();
txt.replaceRange("",delhead,delend);
}
if(e.getSource()==about){
ConfirmDialog fnew=new ConfirmDialog(this,"About对话框","本软件版权没有,欢迎翻版");
if(fnew.isOkay){
}
}
}
public static void main(String args[]){
Awttest16 a=new Awttest16();
a.setSize(400,400);
a.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -