📄 texteditframe.java
字号:
package again;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.swing.event.*;
import javax.swing.text.*;
import com.borland.dbswing.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class TextEditFrame
extends JFrame {
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenuItem jMenuFileExit = new JMenuItem();
JMenu jMenuHelp = new JMenu();
JMenuItem jMenuHelpAbout = new JMenuItem();
JToolBar jToolBar = new JToolBar();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
ImageIcon image1;
ImageIcon image2;
ImageIcon image3;
JLabel statusBar = new JLabel();
BorderLayout borderLayout1 = new BorderLayout();
JTextArea jTextArea1 = new JTextArea();
JMenuItem jMenuItem1 = new JMenuItem();
JMenuItem jMenuItem2 = new JMenuItem();
JMenuItem jMenuItem3 = new JMenuItem();
JMenuItem jMenuItem4 = new JMenuItem();
JFileChooser jFileChooser1 = new JFileChooser();
private String currFileName = null;
private boolean dirty = false;
Document document1;
DBTextDataBinder dBTextDataBinder1 = new DBTextDataBinder();
//Construct the frame
public TextEditFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
updateCaption();
}
catch (Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
image1 = new ImageIcon(again.TextEditFrame.class.getResource("openFile.png"));
image2 = new ImageIcon(again.TextEditFrame.class.getResource(
"closeFile.png"));
image3 = new ImageIcon(again.TextEditFrame.class.getResource("help.png"));
contentPane = (JPanel)this.getContentPane();
document1 = jTextArea1.getDocument();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("Text Editor");
statusBar.setText(" ");
jMenuFile.setText("File");
jMenuFileExit.setText("Exit");
jMenuFileExit.addActionListener(new
TextEditFrame_jMenuFileExit_ActionAdapter(this));
jMenuHelp.setText("Help");
jMenuHelpAbout.setText("About");
jMenuHelpAbout.addActionListener(new
TextEditFrame_jMenuHelpAbout_ActionAdapter(this));
jButton1.setIcon(image1);
jButton1.addActionListener(new TextEditFrame_jButton1_actionAdapter(this));
jButton1.setToolTipText("Open File");
jButton2.setIcon(image2);
jButton2.addActionListener(new TextEditFrame_jButton2_actionAdapter(this));
jButton2.setToolTipText("Save File");
jButton3.setIcon(image3);
jButton3.addActionListener(new TextEditFrame_jButton3_actionAdapter(this));
jButton3.setToolTipText("About");
jMenuItem1.setText("New");
jMenuItem1.addActionListener(new TextEditFrame_jMenuItem1_actionAdapter(this));
jMenuItem2.setText("Open");
jMenuItem2.addActionListener(new TextEditFrame_jMenuItem2_actionAdapter(this));
jMenuItem3.setText("Save");
jMenuItem3.addActionListener(new TextEditFrame_jMenuItem3_actionAdapter(this));
jMenuItem4.setText("Save As");
jMenuItem4.addActionListener(new TextEditFrame_jMenuItem4_actionAdapter(this));
jTextArea1.addAncestorListener(new TextEditFrame_jTextArea1_ancestorAdapter(this));
document1.addDocumentListener(new TextEditFrame_document1_documentAdapter(this));
dBTextDataBinder1.setJTextComponent(jTextArea1);
dBTextDataBinder1.setEnableFileLoading(false);
dBTextDataBinder1.setEnableFileSaving(false);
jToolBar.add(jButton1);
jToolBar.add(jButton2);
jToolBar.add(jButton3);
jMenuFile.add(jMenuItem1);
jMenuFile.add(jMenuItem2);
jMenuFile.add(jMenuItem3);
jMenuFile.add(jMenuItem4);
jMenuFile.addSeparator();
jMenuFile.add(jMenuFileExit);
jMenuHelp.add(jMenuHelpAbout);
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuHelp);
this.setJMenuBar(jMenuBar1);
contentPane.add(jToolBar, BorderLayout.NORTH);
contentPane.add(statusBar, BorderLayout.SOUTH);
contentPane.add(jTextArea1, BorderLayout.CENTER);
}
void openFile(String fileName) {
try {
File file = new File(fileName);
int size = (int) file.length();
int chars_read = 0;
FileReader in = new FileReader(file);
char[] data = new char[size];
while (in.ready()) {
chars_read += in.read(data, chars_read, size - chars_read);
}
in.close();
jTextArea1.setText(new String(data, 0, chars_read));
statusBar.setText("Opened " + fileName);
updateCaption();
}
catch (IOException e) {
statusBar.setText("Error opening " + fileName);
}
}
boolean saveFile() {
if (currFileName == null) {
return saveAsFile();
}
try {
File file = new File(currFileName);
FileWriter out = new FileWriter(file);
String text = jTextArea1.getText();
out.write(text);
out.close();
this.dirty = false;
statusBar.setText("Saved to " + currFileName);
updateCaption();
return true;
}
catch (IOException e) {
statusBar.setText("Error saving " + currFileName);
}
return false;
}
boolean saveAsFile() {
if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {
currFileName = jFileChooser1.getSelectedFile().getPath();
this.repaint();
return saveFile();
}
else {
this.repaint();
return false;
}
}
boolean okToAbandon() {
if (!dirty) {
return true;
}
int value = JOptionPane.showConfirmDialog(this, "Save changes?",
"TextEdit",
JOptionPane.YES_NO_CANCEL_OPTION);
switch (value) {
case JOptionPane.YES_OPTION:
return saveFile();
case JOptionPane.NO_OPTION:
return true;
case JOptionPane.CANCEL_OPTION:
default:
return false;
}
}
void updateCaption() {
String caption;
if (currFileName == null) {
caption = "Untitled";
}
else {
caption = currFileName;
}
if (dirty) {
caption = "* " + caption;
}
caption = "Text Editor - " + caption;
this.setTitle(caption);
}
//File | Exit action performed
public void jMenuFileExit_actionPerformed(ActionEvent e) {
if (okToAbandon()) {
System.exit(0);
}
}
//Help | About action performed
public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
TextEditFrame_AboutBox dlg = new TextEditFrame_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation( (frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.show();
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
jMenuFileExit_actionPerformed(null);
}
}
void jMenuItem1_actionPerformed(ActionEvent e) {
if (okToAbandon()) {
jTextArea1.setText("");
currFileName = null;
dirty = false;
updateCaption();
}
}
void jMenuItem2_actionPerformed(ActionEvent e) {
if (!okToAbandon()) {
return;
}
if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) {
openFile(jFileChooser1.getSelectedFile().getPath());
}
this.repaint();
}
void jTextArea1_ancestorAdded(AncestorEvent e) {
}
void jMenuItem3_actionPerformed(ActionEvent e) {
saveFile();
}
void jMenuItem4_actionPerformed(ActionEvent e) {
saveAsFile();
}
void fileOpen(){
if (!okToAbandon()) {
return;
}
if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) {
openFile(jFileChooser1.getSelectedFile().getPath());
}
this.repaint();
}
void jButton1_actionPerformed(ActionEvent e) {
fileOpen();
}
void jButton2_actionPerformed(ActionEvent e) {
saveFile();
}
void helpAbout(){
TextEditFrame_AboutBox dlg = new TextEditFrame_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation( (frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.show();
}
void jButton3_actionPerformed(ActionEvent e) {
helpAbout();
}
void document1_changedUpdate(DocumentEvent e) {
if (!dirty) {
dirty = true;
updateCaption();
}
}
void document1_insertUpdate(DocumentEvent e) {
if (!dirty) {
dirty = true;
updateCaption();
}
}
void document1_removeUpdate(DocumentEvent e) {
if (!dirty) {
dirty = true;
updateCaption();
}
}
}
class TextEditFrame_jMenuFileExit_ActionAdapter
implements ActionListener {
TextEditFrame adaptee;
TextEditFrame_jMenuFileExit_ActionAdapter(TextEditFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuFileExit_actionPerformed(e);
}
}
class TextEditFrame_jMenuHelpAbout_ActionAdapter
implements ActionListener {
TextEditFrame adaptee;
TextEditFrame_jMenuHelpAbout_ActionAdapter(TextEditFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuHelpAbout_actionPerformed(e);
}
}
class TextEditFrame_jMenuItem2_actionAdapter
implements java.awt.event.ActionListener {
TextEditFrame adaptee;
TextEditFrame_jMenuItem2_actionAdapter(TextEditFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuItem2_actionPerformed(e);
}
}
class TextEditFrame_jTextArea1_ancestorAdapter implements javax.swing.event.AncestorListener {
TextEditFrame adaptee;
TextEditFrame_jTextArea1_ancestorAdapter(TextEditFrame adaptee) {
this.adaptee = adaptee;
}
public void ancestorAdded(AncestorEvent e) {
adaptee.jTextArea1_ancestorAdded(e);
}
public void ancestorRemoved(AncestorEvent e) {
}
public void ancestorMoved(AncestorEvent e) {
}
}
class TextEditFrame_jMenuItem3_actionAdapter implements java.awt.event.ActionListener {
TextEditFrame adaptee;
TextEditFrame_jMenuItem3_actionAdapter(TextEditFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuItem3_actionPerformed(e);
}
}
class TextEditFrame_jMenuItem4_actionAdapter implements java.awt.event.ActionListener {
TextEditFrame adaptee;
TextEditFrame_jMenuItem4_actionAdapter(TextEditFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuItem4_actionPerformed(e);
}
}
class TextEditFrame_jMenuItem1_actionAdapter implements java.awt.event.ActionListener {
TextEditFrame adaptee;
TextEditFrame_jMenuItem1_actionAdapter(TextEditFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuItem1_actionPerformed(e);
}
}
class TextEditFrame_jButton1_actionAdapter implements java.awt.event.ActionListener {
TextEditFrame adaptee;
TextEditFrame_jButton1_actionAdapter(TextEditFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
class TextEditFrame_jButton2_actionAdapter implements java.awt.event.ActionListener {
TextEditFrame adaptee;
TextEditFrame_jButton2_actionAdapter(TextEditFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}
class TextEditFrame_jButton3_actionAdapter implements java.awt.event.ActionListener {
TextEditFrame adaptee;
TextEditFrame_jButton3_actionAdapter(TextEditFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton3_actionPerformed(e);
}
}
class TextEditFrame_document1_documentAdapter implements javax.swing.event.DocumentListener {
TextEditFrame adaptee;
TextEditFrame_document1_documentAdapter(TextEditFrame adaptee) {
this.adaptee = adaptee;
}
public void insertUpdate(DocumentEvent e) {
adaptee.document1_insertUpdate(e);
}
public void removeUpdate(DocumentEvent e) {
adaptee.document1_removeUpdate(e);
}
public void changedUpdate(DocumentEvent e) {
adaptee.document1_changedUpdate(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -