📄 texteditor4.java
字号:
package texteditor4;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
import java.io.*;
import javax.swing.event.*;
import com.borland.dbswing.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class TextEditor4
extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JMenuBar jMenuBar1 = new JMenuBar();
JToolBar jToolBar1 = new JToolBar();
JMenu jMenu1 = new JMenu();
JMenuItem jMenuItem1 = new JMenuItem();
JMenuItem jMenuItem2 = new JMenuItem();
JMenuItem jMenuItem3 = new JMenuItem();
JMenuItem jMenuItem4 = new JMenuItem();
JMenuItem jMenuItem5 = new JMenuItem();
JLabel jLabel1 = new JLabel();
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea jTextArea1 = new JTextArea();
String filename; //文件名
boolean isSaved = false;
Document document;
JFileChooser jFileChooser1 = new JFileChooser();
JMenu jMenu2 = new JMenu();
JMenuItem jMenuItem6 = new JMenuItem();
JMenuItem jMenuItem7 = new JMenuItem();
FontChooser fontChooser1 = new FontChooser();
JMenuItem jMenuItem8 = new JMenuItem();
JButton jButton1 = new JButton();
ImageIcon imageIcon1;
ImageIcon imageIcon2;
ImageIcon imageIcon3;
ImageIcon imageIcon4;
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JMenu jMenu3 = new JMenu();
JMenuItem jMenuItem9 = new JMenuItem();
//Construct the frame
public TextEditor4() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
imageIcon1 = new ImageIcon(TextEditor4.class.getResource("new.gif"));
imageIcon2 = new ImageIcon(TextEditor4.class.getResource("open.gif"));
imageIcon3 = new ImageIcon(TextEditor4.class.getResource("save.gif"));
imageIcon4 = new ImageIcon(TextEditor4.class.getResource("saveas.gif"));
contentPane = (JPanel)this.getContentPane();
contentPane.setLayout(borderLayout1);
document = jTextArea1.getDocument();
this.setSize(new Dimension(400, 300));
this.setTitle("记事本");
jMenu1.setText("文件");
jMenuItem1.setText("新建");
jMenuItem1.addActionListener(new TextEditor4_jMenuItem1_actionAdapter(this));
jMenuItem2.setText("打开");
jMenuItem2.addActionListener(new TextEditor4_jMenuItem2_actionAdapter(this));
jMenuItem3.setText("保存");
jMenuItem3.addActionListener(new TextEditor4_jMenuItem3_actionAdapter(this));
jMenuItem4.setText("另存为");
jMenuItem4.addActionListener(new TextEditor4_jMenuItem4_actionAdapter(this));
jMenuItem5.setText("退出");
jMenuItem5.addActionListener(new TextEditor4_jMenuItem5_actionAdapter(this));
jTextArea1.setText("");
jLabel1.setToolTipText("");
jLabel1.setText(" ");
document.addDocumentListener(new TextEditor4_document_documentAdapter(this));
jMenu2.setText("设置");
jMenuItem6.setText("设置前景色");
jMenuItem6.addActionListener(new TextEditor4_jMenuItem6_actionAdapter(this));
jMenuItem7.setText("设置背景色");
jMenuItem7.addActionListener(new TextEditor4_jMenuItem7_actionAdapter(this));
jMenuItem8.setText("设置字体");
jMenuItem8.addActionListener(new TextEditor4_jMenuItem8_actionAdapter(this));
jButton1.setToolTipText("new file");
jButton1.setIcon(null);
jButton1.setSelectedIcon(null);
jButton1.setText("");
jButton1.addActionListener(new TextEditor4_jButton1_actionAdapter(this));
jButton2.setToolTipText("open file");
jButton2.setVerifyInputWhenFocusTarget(true);
jButton2.setText("");
jButton2.addActionListener(new TextEditor4_jButton2_actionAdapter(this));
jButton3.setToolTipText("save");
jButton3.setText("");
jButton3.addActionListener(new TextEditor4_jButton3_actionAdapter(this));
jButton4.setToolTipText("save as");
jButton4.setText("");
jButton4.addActionListener(new TextEditor4_jButton4_actionAdapter(this));
jButton1.setIcon(imageIcon1);
jButton2.setIcon(imageIcon2);
jButton3.setIcon(imageIcon3);
jButton4.setIcon(imageIcon4);
jMenu3.setText("帮助");
jMenuItem9.setText("关于");
jMenuItem9.addActionListener(new TextEditor4_jMenuItem9_actionAdapter(this));
jMenuBar1.add(jMenu1);
jMenuBar1.add(jMenu2);
jMenuBar1.add(jMenu3);
jMenu1.add(jMenuItem1);
jMenu1.add(jMenuItem2);
jMenu1.add(jMenuItem3);
jMenu1.add(jMenuItem4);
jMenu1.addSeparator();
jMenu1.add(jMenuItem5);
contentPane.add(jLabel1, BorderLayout.SOUTH);
contentPane.add(jScrollPane1, BorderLayout.CENTER);
contentPane.add(jToolBar1, BorderLayout.NORTH);
jToolBar1.add(jButton1, null);
jToolBar1.add(jButton2, null);
jToolBar1.add(jButton3, null);
jToolBar1.add(jButton4, null);
jScrollPane1.getViewport().add(jTextArea1, null);
jMenu2.add(jMenuItem6);
jMenu2.add(jMenuItem7);
jMenu2.addSeparator();
jMenu2.add(jMenuItem8);
jMenu3.add(jMenuItem9);
this.setJMenuBar(jMenuBar1);
fontChooser1.setFrame(this);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
public void newFile() { //创建新的文本文件
if (toExit()) {
jTextArea1.setText("");
filename = null;
isSaved = false;
updateFileName();
jLabel1.setText("新建文件:" + filename);
}
}
boolean save() { //保存文件
if (filename == null) { //如果文件名为空,则调用saveAs()方法
return saveAs();
}
try {
File file = new File(filename); //新建文件对象
FileWriter out = new FileWriter(file);
String text = jTextArea1.getText();
out.write(text); //写文件
out.close();
this.isSaved = false; //将文件状态设为已保存
jLabel1.setText("保存文件:" + filename);
updateFileName(); //更新文件标题
return true;
}
catch (Exception e) {
jLabel1.setText("错误" + e);
}
return false;
}
boolean saveAs() { //文件另存为
if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {
filename = jFileChooser1.getSelectedFile().getPath(); //获得文件路径
return save(); //调用save()方法保存文件
}
else {
return false;
}
}
void updateFileName() { //更新标题文件名
String str;
if (filename == null) { //如果文件名为空,则标题名为Untitled
str = "Untitled";
}
else {
str = filename;
}
if (isSaved) {
str = "记事本-" + str;
}
this.setTitle(str); //设置标题名
this.repaint();
}
boolean toExit() { //是否能关闭当前文件
if (!isSaved) { //如果文件没有改变则返回true
return true;
}
int i = JOptionPane.showConfirmDialog(this, "是否保存文档?", "记事本",
JOptionPane.YES_NO_CANCEL_OPTION);
switch (i) {
case JOptionPane.YES_OPTION: //如选择yes,则保存文件
return save();
case JOptionPane.NO_OPTION: //选择no,则不保存文件,退出
return true;
case JOptionPane.CANCEL_OPTION: //选择cancel,则退回原理状态
return false;
default:
return false;
}
}
void openFile() { //打开文件
if (!toExit()) { //检查是否能关闭现在的文件
return;
}
if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) {
try {
String filename1 = jFileChooser1.getSelectedFile().getPath(); //获取文件路径
File file = new File(filename1); //建立文件对象
int size = (int) file.length(); //获取文件长度
char[] data = new char[size]; //建立缓冲区
FileReader in = new FileReader(file);
int readChar = 0;
while (in.ready()) { //读文件
readChar = readChar + in.read(data, readChar, size - readChar);
}
in.close();
String str = new String(data, 0, readChar);
jTextArea1.setText(str); //设置文本域的内容
filename = filename1;
isSaved = false;
jLabel1.setText("打开文件:" + filename);
updateFileName(); //更新文件标题
}
catch (Exception err) {
jLabel1.setText("错误:" + err);
}
}
this.repaint();
}
void jMenuItem1_actionPerformed(ActionEvent e) {
newFile(); //创建新文件
}
void jMenuItem2_actionPerformed(ActionEvent e) {
openFile(); //打开文件
}
void jMenuItem3_actionPerformed(ActionEvent e) {
save(); //保存文件
}
void jMenuItem4_actionPerformed(ActionEvent e) {
saveAs(); //文件另存为
}
void jMenuItem5_actionPerformed(ActionEvent e) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -