⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 texteditframe.java

📁 java灵感设计
💻 JAVA
字号:
package textedit;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import javax.swing.text.*;/** * <p>Title: TextEditDemo</p> * <p>Description: This is a TextEdit demo</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: d6-125</p> * @author Liujun * @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();  JLabel statusBar = new JLabel();  BorderLayout borderLayout1 = new BorderLayout();  JMenuItem jMenuItem1 = new JMenuItem();  JMenuItem jMenuItem2 = new JMenuItem();  JMenuItem jMenuItem3 = new JMenuItem();  JMenuItem jMenuItem4 = new JMenuItem();  JFileChooser jFileChooser1 = new JFileChooser();  JScrollPane jScrollPane1 = new JScrollPane();  JTextArea jTextArea1 = new JTextArea();  String currFileName = null;  // 需要完整路径的文件名,null 表示新文件或无文件名。  boolean dirty = false;//表示文本是否被修改过。  //Construct the frame  public TextEditFrame() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  //Component initialization  private void jbInit() throws Exception  {    //setIconImage(Toolkit.getDefaultToolkit().createImage(TextEditFrame.class.getResource("[Your Icon]")));    contentPane = (JPanel) this.getContentPane();    contentPane.setLayout(borderLayout1);    this.setSize(new Dimension(400, 300));    this.setTitle("Text Edit Frame Demo");    statusBar.setText(" ");    jMenuFile.setText("File");    jMenuFileExit.setText("Exit");    jMenuFileExit.addActionListener(new ActionListener()  {      public void actionPerformed(ActionEvent e) {        jMenuFileExit_actionPerformed(e);      }    });    jMenuHelp.setText("Help");    jMenuHelpAbout.setIcon(new ImageIcon(new java.net.URL("file:///L:/jb6exam/TextEdit/TextEdit/src/image/help.gif")));    jMenuHelpAbout.setText("About");    jMenuHelpAbout.addActionListener(new ActionListener()  {      public void actionPerformed(ActionEvent e) {        jMenuHelpAbout_actionPerformed(e);      }    });    jMenuItem1.setIcon(new ImageIcon(new java.net.URL("file:///L:/jb6exam/TextEdit/TextEdit/src/image/NewFile.GIF")));    jMenuItem1.setText("New");    jMenuItem1.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        jMenuItem1_actionPerformed(e);      }    });    jMenuItem2.setIcon(new ImageIcon(new java.net.URL("file:///L:/jb6exam/TextEdit/TextEdit/src/image/openFile.gif")));    jMenuItem2.setText("Open");    jMenuItem2.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        jMenuItem2_actionPerformed(e);      }    });    jMenuItem3.setIcon(new ImageIcon(new java.net.URL("file:///L:/jb6exam/TextEdit/TextEdit/src/image/closeFile.gif")));    jMenuItem3.setText("Save");    jMenuItem3.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        jMenuItem3_actionPerformed(e);      }    });    jMenuItem4.setIcon(new ImageIcon(new java.net.URL("file:///L:/jb6exam/TextEdit/TextEdit/src/image/closeFile.gif")));    jMenuItem4.setText("Save As");    jMenuItem4.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        jMenuItem4_actionPerformed(e);      }    });    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(statusBar, BorderLayout.SOUTH);    contentPane.add(jScrollPane1, BorderLayout.CENTER);    jScrollPane1.getViewport().add(jTextArea1, null);  }  //File | Exit action performed  public void jMenuFileExit_actionPerformed(ActionEvent e) {    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.show();  }  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));      this.currFileName = fileName;      this.dirty = false;      statusBar.setText("打开了文件:" + fileName);      updateCaption();    }    catch (IOException e)    {      statusBar.setText("文件打开错误: " + fileName);    }  }  void fileOpen() {    if (!okToAbandon()) {//如果上一个文件被修改过了,则询问用户。      return;    }    if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) {      openFile(jFileChooser1.getSelectedFile().getPath());//打开文件    }    this.repaint();  }  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() {    this.repaint();    if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {      currFileName = jFileChooser1.getSelectedFile().getPath();      this.repaint();      return saveFile();    }    else {      this.repaint();      return false;    }  }  boolean okToAbandon() {  // 检查文件是否被修改过,显示"保存? yes/no/cancel"信息,让用户决定是否保存。    if (!dirty) {      return true;    }    int value =  JOptionPane.showConfirmDialog(this, "保存修改?",                                         "Text Edit", 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) {       // 无文件名则使用"Untitled"。       caption = "Untitled";    }    else {      caption = currFileName;    }    // 添加更改信息标志 "*"。    if (dirty) {      caption = "* " + caption;    }    caption = "Text Editor - " + caption;    this.setTitle(caption);  }  //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) {    // Handle the File|New menu item.    if (okToAbandon()) {      // 清空TextArea组件内容      jTextArea1.setText("");      // 清空文件名和更改信息标志      currFileName = null;      dirty = false;      updateCaption();    }  }  void jMenuItem2_actionPerformed(ActionEvent e) {    //Handle the File|Open menu item.    fileOpen();  }  void jMenuItem3_actionPerformed(ActionEvent e) {    //Handle the File|Save menu item.    saveFile();  }  void jMenuItem4_actionPerformed(ActionEvent e) {    //Handle the File|Save As menu item.    saveAsFile();  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -