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

📄 jnotepadui.java~195~

📁 JAVA开发的一个记事本
💻 JAVA~195~
📖 第 1 页 / 共 2 页
字号:
package jnotepad;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;

/**
 * <p>Title: JNotePad</p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: hhxy</p>
 *
 * @author 王利华
 * @version 1.0
 */
public class JNotePadUI extends JFrame {
    JPanel contentPane;
    BorderLayout borderLayout1 = new BorderLayout();
    JMenuBar jMenuBar1 = new JMenuBar();
    JMenu jMenuFile = new JMenu();
    JMenuItem jMenuFileExit = new JMenuItem();
    JMenuItem jMenuItemOpen = new JMenuItem();
    JMenuItem jMenuItemSave = new JMenuItem();
    JMenuItem jMenuItemSaveAS = new JMenuItem();
    JMenu jMenuEdit = new JMenu();
    JMenuItem jMenuItemCut = new JMenuItem();
    JMenuItem jMenuItemCopy = new JMenuItem();
    JMenuItem jMenuItemParse = new JMenuItem();
    JMenu jMenuAbout = new JMenu();
    JMenuItem jMenuItemAbout = new JMenuItem();
    JLabel stateBar = new JLabel();
    JScrollPane jScrollPane1 = new JScrollPane();
    JTextArea jTextArea = new JTextArea();
    JPopupMenu popUpMenu;
    JFileChooser fileChooser=new JFileChooser();
    JMenuItem jMenuItemNew = new JMenuItem();
    JPanel jPanel1 = new JPanel();
    JToolBar jToolBar1 = new JToolBar();
    ToolBarAction tba_new   = new ToolBarAction("新建",new ImageIcon(".\\src\\img\\new.gif"));
    ToolBarAction tba_open   = new ToolBarAction("打开",new ImageIcon(".\\src\\img\\open.gif"));
    ToolBarAction tba_save   = new ToolBarAction("保存",new ImageIcon(".\\src\\img\\save.gif"));
    ToolBarAction tba_cut   = new ToolBarAction("剪切",new ImageIcon(".\\src\\img\\cut.gif"));
    ToolBarAction tba_copy   = new ToolBarAction("复制",new ImageIcon(".\\src\\img\\copy.gif"));
    ToolBarAction tba_paste  = new ToolBarAction("粘贴",new ImageIcon(".\\src\\img\\paste.gif"));
    GridLayout gridLayout1 = new GridLayout();
    JMenu jMenuFormat = new JMenu();
    JMenuItem jMenuItem1 = new JMenuItem();
    JButton jButtonColor = new JButton(new ImageIcon(".\\src\\img\\color.gif"));
    JButton jButtonA = new JButton(new ImageIcon(".\\src\\img\\fg.gif"));
    public JNotePadUI() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }


    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(borderLayout1);
        setSize(new Dimension(640, 480));
        setTitle("新建文本文件");
        jMenuFile.setAction(null);
        jMenuFile.setActionCommand("");
        jMenuFile.setText("文件");
        jMenuFileExit.setText("退出");
        jMenuFileExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.
                awt.event.KeyEvent.VK_Q, java.awt.event.KeyEvent.CTRL_MASK, false));
        jMenuFileExit.addActionListener(new
                                        JNotePadUI_jMenuFileExit_ActionAdapter(this));
        jMenuItemOpen.setText("打开");
        jMenuItemOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.
                event.KeyEvent.VK_O, java.awt.event.KeyEvent.CTRL_MASK, false));
        jMenuItemOpen.addActionListener(new
                                        JNotePadUI_jMenuItemOpen_actionAdapter(this));
        jMenuItemSave.setText("保存");
        jMenuItemSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.
                event.KeyEvent.VK_S, java.awt.event.KeyEvent.CTRL_MASK, false));
        jMenuItemSave.addActionListener(new
                                        JNotePadUI_jMenuItemSave_actionAdapter(this));
        jMenuItemSaveAS.setText("另存为");
        jMenuItemSaveAS.addActionListener(new
                JNotePadUI_jMenuItemSaveAS_actionAdapter(this));
        jMenuEdit.setText("编辑");
        jMenuItemCut.setText("剪切");
        jMenuItemCut.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.
                event.KeyEvent.VK_X, java.awt.event.KeyEvent.CTRL_MASK, false));
        jMenuItemCut.addActionListener(new
                                       JNotePadUI_jMenuItemCut_actionAdapter(this));
        jMenuItemCopy.setText("复制");
        jMenuItemCopy.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.
                awt.event.KeyEvent.VK_C, java.awt.event.KeyEvent.CTRL_MASK, false));
        jMenuItemCopy.addActionListener(new
                                        JNotePadUI_jMenuItemCopy_actionAdapter(this));
        jMenuItemParse.setText("粘贴");
        jMenuItemParse.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.
                awt.event.KeyEvent.VK_V, java.awt.event.KeyEvent.CTRL_MASK, false));
        jMenuItemParse.addActionListener(new
                JNotePadUI_jMenuItemParse_actionAdapter(this));
        jMenuAbout.setText("关于");
        jMenuItemAbout.setText("关于JNotePad");
        jMenuItemAbout.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.
                awt.event.KeyEvent.VK_F2, 0, true));
        jMenuItemAbout.addActionListener(new
                JNotePadUI_jMenuItemAbout_actionAdapter(this));
        stateBar.setText("未修改");
        jTextArea.setFont(new java.awt.Font("宋体", Font.PLAIN, 16));
        jTextArea.setText("");
        jTextArea.setLineWrap(true);
        jTextArea.addKeyListener(new JNotePadUI_jTextArea_keyAdapter(this));
        jTextArea.addMouseListener(new JNotePadUI_jTextArea_mouseAdapter(this));
        jMenuItemNew.setText("新建");
        jMenuItemNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.
                event.KeyEvent.VK_N, java.awt.event.KeyEvent.CTRL_MASK, false));
        jMenuItemNew.addActionListener(new
                                       JNotePadUI_jMenuItemNew_actionAdapter(this));
        jPanel1.setLayout(gridLayout1);
        jMenuFormat.setText("格式");
        jMenuItem1.setText("字体");
        jMenuItem1.addActionListener(new JNotePadUI_jMenuItem1_actionAdapter(this));
        jButtonColor.setBorder(BorderFactory.createEtchedBorder());
        jButtonColor.setToolTipText("颜色");
        jButtonColor.setText("");
        jButtonColor.addActionListener(new
                                       JNotePadUI_jButtonColor_actionAdapter(this));
        jButtonA.setBorder(BorderFactory.createEtchedBorder());
        jButtonA.setToolTipText("字体");
        jButtonA.addActionListener(new JNotePadUI_jButtonA_actionAdapter(this));
        jMenuBar1.add(jMenuFile);
        jMenuBar1.add(jMenuEdit);
        jMenuBar1.add(jMenuAbout);
        jMenuBar1.add(jMenuFormat);
        jMenuFile.add(jMenuItemNew);
        jMenuFile.addSeparator();
        jMenuFile.add(jMenuItemOpen);
        jMenuFile.addSeparator();
        jMenuFile.add(jMenuItemSave);
        jMenuFile.add(jMenuItemSaveAS);
        jMenuFile.addSeparator();
        jMenuFile.add(jMenuFileExit);
        setJMenuBar(jMenuBar1);
        jMenuEdit.add(jMenuItemCut);
        jMenuEdit.add(jMenuItemCopy);
        jMenuEdit.add(jMenuItemParse);
        jMenuAbout.add(jMenuItemAbout);
        contentPane.add(stateBar, java.awt.BorderLayout.SOUTH);
        contentPane.add(jPanel1, java.awt.BorderLayout.NORTH);
        jPanel1.add(jToolBar1);
        contentPane.add(jScrollPane1, java.awt.BorderLayout.CENTER);
        jScrollPane1.getViewport().add(jTextArea);
        jMenuFormat.add(jMenuItem1);
        popUpMenu=jMenuEdit.getPopupMenu();
          JButton JB;
          JB = jToolBar1.add(tba_new);
          JB.setToolTipText((String)tba_new.getValue(Action.NAME));
          JB.setActionCommand("new");
          JB.setBorder(BorderFactory.createEtchedBorder());
          JB = jToolBar1.add(tba_open);
          JB.setToolTipText((String)tba_open.getValue(Action.NAME));
          JB.setActionCommand("open");
          JB.setBorder(BorderFactory.createEtchedBorder());
          JB = jToolBar1.add(tba_save);
          JB.setToolTipText((String)tba_save.getValue(Action.NAME));
          JB.setActionCommand("save");
          JB.setBorder(BorderFactory.createEtchedBorder());
          JB = jToolBar1.add(tba_cut);
          JB.setToolTipText((String)tba_cut.getValue(Action.NAME));
          JB.setActionCommand("cut");
          JB.setBorder(BorderFactory.createEtchedBorder());
          JB = jToolBar1.add(tba_copy);
          JB.setToolTipText((String)tba_copy.getValue(Action.NAME));
          JB.setActionCommand("copy");
          JB.setBorder(BorderFactory.createEtchedBorder());
          JB = jToolBar1.add(tba_paste);
          JB.setToolTipText((String)tba_new.getValue(Action.NAME));
          JB.setActionCommand("paste");
          JB.setBorder(BorderFactory.createEtchedBorder());
          jToolBar1.add(jButtonColor);
          jToolBar1.add(jButtonA);

          fileChooser.addChoosableFileFilter(new JAVAFileFilter("hua"));
          fileChooser.addChoosableFileFilter(new JAVAFileFilter("li"));
          fileChooser.addChoosableFileFilter(new JAVAFileFilter("wang"));

    }
    private void cut(){
       jTextArea.cut();
       stateBar.setText("已修改");
       popUpMenu.setVisible(false);
    }
    private void copy(){
       jTextArea.copy();
       popUpMenu.setVisible(false);
    }
    private void paste(){
      jTextArea.paste();
      stateBar.setText("已修改");
      popUpMenu.setVisible(false);
    }

    private boolean isCurrenFileSaved(){
      if(stateBar.getText().equals("未修改"))
          return false;
     return true;
    }
    private void file(){
        jTextArea.setText("");
        setTitle("新建文本文件");
        stateBar.setText("未修改");
    }
    private void newFile(){
    if(isCurrenFileSaved()){
        int option=JOptionPane.showConfirmDialog(null,"文件已修改,是否保存?","保存文件?",
               JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,null
               );
        switch(option){
            case JOptionPane.YES_OPTION:
                  saveFile();break;
              }
    }
    file();
    }
    private void openFile(){
        if(!isCurrenFileSaved()){
           open();
        }
        else{
            int option=JOptionPane.showConfirmDialog(null,"文件已修改,是否保存?","保存文件?",
                   JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,null
                   );
            switch(option){
                case JOptionPane.YES_OPTION:
                      saveFile();break;
                case JOptionPane.NO_OPTION:
                     open();break;
         }
        }
    }
    private void open(){
         int option=fileChooser.showOpenDialog(this);
          if(option==JFileChooser .APPROVE_OPTION){
          try{
              BufferedReader bu=new BufferedReader(new FileReader(fileChooser.getSelectedFile()));
              String s=fileChooser.getSelectedFile().toString();
              s=s.substring(s.lastIndexOf('\\')+1);
              setTitle(s);
              jTextArea.setText("");
              stateBar.setText("未修改");
              String lineSeparator=System.getProperty("line.separator");
              String text;
              while((text=bu.readLine())!=null){
                   jTextArea.append(text);
                   jTextArea.append(lineSeparator);
              }
              bu.close();
          }catch(IOException e){
            JOptionPane.showMessageDialog(null,e.toString(),"开启文件失败",JOptionPane.ERROR_MESSAGE);
          }
        }
    }
    private void saveFile(){
       File file=new File(getTitle());
       System.out.println("file="+file.exists());
       if(!file.exists())
           saveFileAs();
       else{
           try{
               BufferedWriter bu=new BufferedWriter(new FileWriter(file));
               bu.write(jTextArea.getText());
               bu.close();
               stateBar.setText("未修改");
               setTitle(file.toString().substring(file.toString().lastIndexOf('\\')+1));
           }catch(Exception e){
              JOptionPane.showMessageDialog(null,e.toString(),"写入文件失败",JOptionPane.ERROR_MESSAGE);
           }
       }
    }
    private void saveFileAs(){
       int option=fileChooser.showSaveDialog(this);
       if(option==JFileChooser.APPROVE_OPTION){
          File file=fileChooser.getSelectedFile();
          JAVAFileFilter filetype=(JAVAFileFilter)fileChooser.getFileFilter();
             String s=filetype.ext;
           //  if(s==null)
              //  s=file.toString()+"."+s;
             file=new File(s);
             setTitle(s);
          try{

⌨️ 快捷键说明

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