📄 editor.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Editor
extends Frame
implements ActionListener, TextListener
{
private MenuItem fileNew = new MenuItem("New");
private MenuItem fileOpen = new MenuItem("Open ...");
private MenuItem fileSave = new MenuItem("Save");
private MenuItem fileSaveAs = new MenuItem("Save As ...");
private MenuItem fileExit = new MenuItem("Exit");
private TextArea text = new TextArea();
private String file = "untitled";
private boolean isDirty = false;
public Editor()
{
super("Text Viewer");
setTitle("Editor: untitled");
Menu fileMenu = new Menu("File");
fileMenu.add(fileNew);
fileNew.addActionListener(this);
fileMenu.add(fileOpen);
fileOpen.addActionListener(this);
fileMenu.addSeparator();
fileMenu.add(fileSave);
fileSave.addActionListener(this);
fileMenu.add(fileSaveAs);
fileSaveAs.addActionListener(this);
fileMenu.addSeparator();
fileMenu.add(fileExit);
fileExit.addActionListener(this);
text.addTextListener(this);
MenuBar menu = new MenuBar();
menu.add(fileMenu);
setMenuBar(menu);
setLayout(new BorderLayout());
add("Center", text);
setSize(400, 400);
setVisible(true);
}
public void exitProgram()
{
if ( (isDirty) && (wantToSave()))
{
saveFile();
}
System.exit(0);
}
public void saveFile()
{
if (file.equals("untitled"))
{
saveFileAs();
}
else
{
savingFile();
}
isDirty = false;
}
public void saveFileAs()
{
FileDialog fd = new FileDialog(this, "Save File As", FileDialog.SAVE);
fd.show();
if (fd.getFile() != null)
{
file = fd.getDirectory() + fd.getFile();
savingFile();
}
isDirty = false;
}
public void newFile()
{
if ( (isDirty) && (wantToSave()))
{
saveFile();
}
text.setText("");
file = "untitled";
setTitle("Editor: " + file);
isDirty = false;
}
public void openFile()
{
if ( (isDirty) && (wantToSave()))
{
saveFile();
}
FileDialog fd = new FileDialog(this, "Open File", FileDialog.LOAD);
fd.show();
if (fd.getFile() != null)
{
file = fd.getDirectory() + fd.getFile();
setTitle("Editor: " + file);
try
{
BufferedReader in = new BufferedReader(new FileReader(file));
String line = new String(""), s = new String("");
while ( (line = in.readLine()) != null)
{
s += line + "\n";
}
in.close();
text.setText(s);
text.setCaretPosition(0);
}
catch (IOException ioe)
{
System.err.println(ioe);
}
isDirty = false;
}
fd.dispose();
}
public void textValueChanged(TextEvent te)
{
isDirty = true;
}
public void actionPerformed(ActionEvent ae)
{
if (ae.getSource() == fileExit)
{
exitProgram();
}
else if (ae.getSource() == fileNew)
{
newFile();
}
else if (ae.getSource() == fileOpen)
{
openFile();
}
else if (ae.getSource() == fileSave)
{
saveFile();
}
else if (ae.getSource() == fileSaveAs)
{
saveFileAs();
}
}
private boolean wantToSave()
{
ConfirmDialog saving = new ConfirmDialog(this, "File not Saved",
"Do you want to save "+ file );
return saving.isOkay;
}
private void savingFile()
{
try
{
PrintWriter out = new PrintWriter(new FileWriter(file));
out.print(text.getText());
out.close();
}
catch (IOException ioe)
{
System.out.println(ioe);
}
setTitle("Editor: " + file);
}
public static void main(String args[])
{
Editor editor = new Editor();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -