📄 texteditorframe.java
字号:
package textedit;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import com.borland.dbswing.*;import javax.swing.text.Document;import javax.swing.event.*;/** * Title: * Description: * Copyright: Copyright (c) 2001 * Company: * @author * @version 1.0 */public class TextEditorFrame 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(); JScrollPane TextScrollPane = new JScrollPane(); JTextArea jTextArea1 = new JTextArea(); JMenuItem jMenuFileOpen = new JMenuItem(); JMenuItem jMenuFileNew = new JMenuItem(); JMenuItem jMenuFileSave = new JMenuItem(); JMenuItem jMenuFileSaveas = new JMenuItem(); JMenu jMenuEdit = new JMenu(); JMenuItem jMenuEditFont = new JMenuItem(); JMenuItem jMenuEditColor = new JMenuItem(); JMenuItem jMenuEditBColor = new JMenuItem(); String currentFileName; boolean saveNeeded; FontChooser fontChooser1 = new FontChooser(); Document document1; JFileChooser jFileChooser1 = new JFileChooser(); /**Construct the frame*/ public TextEditorFrame() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } /**Component initialization*/ private void jbInit() throws Exception { image1 = new ImageIcon(textedit.TextEditorFrame.class.getResource("openFile.gif")); image2 = new ImageIcon(textedit.TextEditorFrame.class.getResource("closeFile.gif")); image3 = new ImageIcon(textedit.TextEditorFrame.class.getResource("help.gif")); //setIconImage(Toolkit.getDefaultToolkit().createImage(TextEditorFrame.class.getResource("[Your Icon]"))); contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(borderLayout1); this.setSize(new Dimension(400, 300)); this.setTitle("文本编辑器"); this.addHierarchyBoundsListener(new java.awt.event.HierarchyBoundsAdapter() { public void ancestorResized(HierarchyEvent e) { this_ancestorResized(e); } }); this.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(WindowEvent e) { this_windowClosing(e); } }); statusBar.setText(" "); jMenuFile.setText("File"); jMenuFileExit.setText("Exit"); jMenuFileExit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jMenuFileExit_actionPerformed(e); } }); jMenuHelp.setText("Help"); jMenuHelpAbout.setText("About"); jMenuHelpAbout.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jMenuHelpAbout_actionPerformed(e); } }); jButton1.setIcon(image1); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jButton1_actionPerformed(e); } }); jButton1.setToolTipText("Open File"); jButton2.setIcon(image2); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jButton2_actionPerformed(e); } }); jButton2.setToolTipText("Close File"); jButton3.setIcon(image3); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jButton3_actionPerformed(e); } }); jButton3.setToolTipText("Help"); jTextArea1.setLineWrap(true); jMenuFileOpen.setText("Open...."); jMenuFileOpen.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuFileOpen_actionPerformed(e); } }); jMenuFileNew.setText("New"); jMenuFileNew.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuFileNew_actionPerformed(e); } }); jMenuFileSave.setText("Save"); jMenuFileSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuFileSave_actionPerformed(e); } }); jMenuFileSaveas.setText("Save As..."); jMenuFileSaveas.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuFileSaveas_actionPerformed(e); } }); jMenuEdit.setText("Edit"); jMenuEditFont.setText("Font...."); jMenuEditFont.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuEditFont_actionPerformed(e); } }); jMenuEditColor.setText("Foreground Color"); jMenuEditColor.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuEditColor_actionPerformed(e); } }); jMenuEditBColor.setText("Background Color"); jMenuEditBColor.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuEditBColor_actionPerformed(e); } }); fontChooser1.setFrame(this); fontChooser1.setTitle("选择字体"); document1=jTextArea1.getDocument(); document1.addDocumentListener(new javax.swing.event.DocumentListener() { public void insertUpdate(DocumentEvent e) { document1_insertUpdate(e); } public void removeUpdate(DocumentEvent e) { document1_removeUpdate(e); } public void changedUpdate(DocumentEvent e) { document1_changedUpdate(e); } }); jToolBar.add(jButton1); jToolBar.add(jButton2); jToolBar.add(jButton3); jMenuFile.add(jMenuFileNew); jMenuFile.add(jMenuFileOpen); jMenuFile.add(jMenuFileSave); jMenuFile.add(jMenuFileSaveas); jMenuFile.addSeparator(); jMenuFile.add(jMenuFileExit); jMenuHelp.add(jMenuHelpAbout); jMenuBar1.add(jMenuFile); jMenuBar1.add(jMenuEdit); jMenuBar1.add(jMenuHelp); this.setJMenuBar(jMenuBar1); contentPane.add(jToolBar, BorderLayout.NORTH); contentPane.add(statusBar, BorderLayout.SOUTH); contentPane.add(TextScrollPane, BorderLayout.CENTER); TextScrollPane.getViewport().add(jTextArea1, null); jMenuEdit.add(jMenuEditFont); jMenuEdit.add(jMenuEditColor); jMenuEdit.add(jMenuEditBColor); document1 = jTextArea1.getDocument(); } /**File | Exit action performed*/ public void jMenuFileExit_actionPerformed(ActionEvent e) { if (!okToAbandon()) { return;} System.exit(0); } /**Help | About action performed*/ public void jMenuHelpAbout_actionPerformed(ActionEvent e) { TextEditorFrame_AboutBox dlg = new TextEditorFrame_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(); } /**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 jMenuFileNew_actionPerformed(ActionEvent e) { if(okToAbandon()){ jTextArea1.setText(""); currentFileName = null; saveNeeded = false; updateTitle(); } } void jMenuFileOpen_actionPerformed(ActionEvent e) { openFile(); } void jButton1_actionPerformed(ActionEvent e) { openFile(); } void jMenuFileSave_actionPerformed(ActionEvent e) { saveFile(); } void jButton2_actionPerformed(ActionEvent e) { saveFile(); } void jMenuFileSaveas_actionPerformed(ActionEvent e) { saveAsFile(); } void jButton3_actionPerformed(ActionEvent e) { } void this_windowClosing(WindowEvent e) { if (!okToAbandon()) { return;} System.exit(0); } void jMenuEditFont_actionPerformed(ActionEvent e) { fontChooser1.setSelectedFont(jTextArea1.getFont()); if (fontChooser1.showDialog()) { jTextArea1.setFont(fontChooser1.getSelectedFont()); } this.repaint(); jTextArea1.repaint(); } void jMenuEditColor_actionPerformed(ActionEvent e) { Color color = JColorChooser.showDialog(this,"Foreground Color",jTextArea1.getForeground()); if (color != null) { jTextArea1.setForeground(color); } this.repaint(); } void jMenuEditBColor_actionPerformed(ActionEvent e) { Color color = JColorChooser.showDialog(this,"Background Color",jTextArea1.getBackground()); if (color != null) { jTextArea1.setBackground(color); } this.repaint(); } void openFile(){if (!okToAbandon()) { return;}if(JFileChooser.APPROVE_OPTION== jFileChooser1.showOpenDialog(this)) {openSelectedFile(jFileChooser1.getSelectedFile().getPath());}this.repaint();}void openSelectedFile(String fileName){ try{ File file = new File(fileName); int fileSize = (int)file.length();int charsReaded = 0; FileReader in = new FileReader(file); char[] data = new char[fileSize]; while(in.ready()) { charsReaded += in.read(data, charsReaded, fileSize - charsReaded); } in.close(); jTextArea1.setText(new String(data, 0, charsReaded)); this.currentFileName = fileName; this.saveNeeded = false; statusBar.setText("打开 "+fileName); updateTitle(); } catch (IOException e){ statusBar.setText("Error opening "+fileName); }}boolean okToAbandon() { if (!saveNeeded) { return true; } int value=JOptionPane.showConfirmDialog(this, "保存文件吗?", "文本编辑", 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 updateTitle(){ String title; if (currentFileName == null) { title = "未命名文件"; }else { title = currentFileName; } if(saveNeeded == true){ title = "* "+title; } title = "文本编辑器- " + title; this.setTitle(title);}boolean saveFile() { if (currentFileName == null) { return saveAsFile(); } try{ File file = new File (currentFileName);FileWriter out = new FileWriter(file); String text = jTextArea1.getText(); out.write(text); out.close(); this.saveNeeded = false; updateTitle(); return true; } catch (IOException e) { statusBar.setText("存储"+currentFileName+ "出错"); } return false;}boolean saveAsFile() {this.repaint(); if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)){ currentFileName = jFileChooser1.getSelectedFile().getPath(); this.repaint(); return saveFile(); } else { this.repaint(); return false; }} void document1_changedUpdate(DocumentEvent e) { saveNeeded = true;updateTitle(); } void this_ancestorResized(HierarchyEvent e) { } void document1_insertUpdate(DocumentEvent e) { saveNeeded = true;updateTitle(); } void document1_removeUpdate(DocumentEvent e) { saveNeeded = true;updateTitle(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -