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

📄 mynotepad.java

📁 Java记事本,类似于Windows附带的记事本
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
        JLabel replaceContentLabel = new JLabel("替换为(P)  :");        final JTextField findText = new JTextField(30);        final JTextField replaceText = new JTextField(30);        final JCheckBox matchcase = new JCheckBox("区分大小写(C)");        ButtonGroup bGroup = new ButtonGroup();        final JRadioButton up = new JRadioButton("向上(U)");        final JRadioButton down = new JRadioButton("向下(D)");        down.setSelected(true);        bGroup.add(up);        bGroup.add(down);        JButton searchNext = new JButton("查找下一个(F)");        JButton replace = new JButton("替换(R)");        final JButton replaceAll = new JButton("全部替换(A)");        //"替换"按钮的事件处理        replace.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                if (replaceText.getText().length() == 0 && tex.getSelectedText() != null) {                    tex.replaceSelection("");                }                if (replaceText.getText().length() > 0 && tex.getSelectedText() != null) {                    tex.replaceSelection(replaceText.getText());                }            }        });        //"替换全部"按钮的事件处理        replaceAll.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                tex.setCaretPosition(0); //将光标放到编辑区开头                int a = 0, b = 0, replaceCount = 0;                if (findText.getText().length() == 0) {                    JOptionPane.showMessageDialog(findDialog, "请填写查找内容!", "提示",                            JOptionPane.WARNING_MESSAGE);                    findText.requestFocus(true);                    return;                }                while (a > -1) {                    int FindStartPos = tex.getCaretPosition();                    String str1, str2, str3, str4, strA, strB;                    str1 = tex.getText();                    str2 = str1.toLowerCase();                    str3 = findText.getText();                    str4 = str3.toLowerCase();                    if (matchcase.isSelected()) {                        strA = str1;                        strB = str3;                    } else {                        strA = str2;                        strB = str4;                    }                    if (up.isSelected()) {                        if (tex.getSelectedText() == null) {                            a = strA.lastIndexOf(strB, FindStartPos - 1);                        } else {                            a = strA.lastIndexOf(strB, FindStartPos - findText.getText().length() - 1);                        }                    } else if (down.isSelected()) {                        if (tex.getSelectedText() == null) {                            a = strA.indexOf(strB, FindStartPos);                        } else {                            a = strA.indexOf(strB, FindStartPos - findText.getText().length() + 1);                        }                    }                    if (a > -1) {                        if (up.isSelected()) {                            tex.setCaretPosition(a);                            b = findText.getText().length();                            tex.select(a, a + b);                        } else if (down.isSelected()) {                            tex.setCaretPosition(a);                            b = findText.getText().length();                            tex.select(a, a + b);                        }                    } else {                        if (replaceCount == 0) {                            JOptionPane.showMessageDialog(findDialog,                                    "找不到您查找的内容!", "记事本",                                    JOptionPane.INFORMATION_MESSAGE);                        } else {                            JOptionPane.showMessageDialog(findDialog, "成功替换" + replaceCount + "个匹配内容!", "替换成功",                                    JOptionPane.INFORMATION_MESSAGE);                        }                    }                    if (replaceText.getText().length() == 0 && tex.getSelectedText() != null) {                        tex.replaceSelection("");                        replaceCount++;                    }                    if (replaceText.getText().length() > 0 && tex.getSelectedText() != null) {                        tex.replaceSelection(replaceText.getText());                        replaceCount++;                    }                }//end while            }        }); //"替换全部"按钮的事件处理结束        //"查找下一个"按钮事件处理        searchNext.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                int a = 0, b = 0;                int FindStartPos = tex.getCaretPosition();                String str1, str2, str3, str4, strA, strB;                str1 = tex.getText();                str2 = str1.toLowerCase();                str3 = findText.getText();                str4 = str3.toLowerCase();                //"区分大小写"的CheckBox被选中                if (matchcase.isSelected()) {                    strA = str1;                    strB = str3;                } else {                    strA = str2;                    strB = str4;                }                if (up.isSelected()) {                    if (tex.getSelectedText() == null) {                        a = strA.lastIndexOf(strB, FindStartPos - 1);                    } else {                        a = strA.lastIndexOf(strB, FindStartPos - findText.getText().length() - 1);                    }                } else if (down.isSelected()) {                    if (tex.getSelectedText() == null) {                        a = strA.indexOf(strB, FindStartPos);                    } else {                        a = strA.indexOf(strB, FindStartPos - findText.getText().length() + 1);                    }                }                if (a > -1) {                    if (up.isSelected()) {                        tex.setCaretPosition(a);                        b = findText.getText().length();                        tex.select(a, a + b);                    } else if (down.isSelected()) {                        tex.setCaretPosition(a);                        b = findText.getText().length();                        tex.select(a, a + b);                    }                } else {                    JOptionPane.showMessageDialog(null, "找不到您查找的内容!", "记事本",                            JOptionPane.INFORMATION_MESSAGE);                }            }        });//"查找下一个"按钮事件处理结束        //"取消"按钮及事件处理        JButton cancel = new JButton("取消");        cancel.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                findDialog.dispose();            }        });        //创建"查找与替换"对话框的界面        JPanel bottomPanel = new JPanel();        JPanel centerPanel = new JPanel();        JPanel topPanel = new JPanel();        JPanel direction = new JPanel();        direction.setBorder(BorderFactory.createTitledBorder("方向"));        direction.add(up);        direction.add(down);        JPanel replacePanel = new JPanel();        replacePanel.setLayout(new GridLayout(1, 2));        replacePanel.add(replace);        replacePanel.add(replaceAll);        topPanel.add(searchContentLabel);        topPanel.add(findText);        topPanel.add(searchNext);        centerPanel.add(replaceContentLabel);        centerPanel.add(replaceText);        centerPanel.add(replacePanel);        bottomPanel.add(matchcase);        bottomPanel.add(direction);        bottomPanel.add(cancel);        con.add(topPanel);        con.add(centerPanel);        con.add(bottomPanel);        con.add(replacePanel);        //设置"查找与替换"对话框的大小、可更改大小(否)、位置和可见性        findDialog.setSize(550, 240);        findDialog.setResizable(true);        findDialog.setLocation(230, 280);        findDialog.setVisible(true);    }//方法mySearch()结束//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//$$$$$$$$$$$$$$$$$$$$设置菜单项的可用性:剪切,复制,粘贴,删除功能$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$    public void checkMenuItemEnabled() {        //主要是通过判断编辑区是否有文本被选中来设置这些操作(剪切,复制,删除)的可用性;        //通过判断剪贴板信息设置粘贴选项的可用性        String selectText = tex.getSelectedText();        if (selectText == null) {            me2.setEnabled(false); //剪切            popupMenu_Cut.setEnabled(false);            bt_cut.setEnabled(false);            me3.setEnabled(false); //复制            popupMenu_Copy.setEnabled(false);            bt_copy.setEnabled(false);            me5.setEnabled(false); //删除            popupMenu_Delete.setEnabled(false);        } else {            me2.setEnabled(true); //剪切            popupMenu_Cut.setEnabled(true);            bt_cut.setEnabled(true);            me3.setEnabled(true); //复制            popupMenu_Copy.setEnabled(true);            bt_copy.setEnabled(true);            me5.setEnabled(true); //删除            popupMenu_Delete.setEnabled(true);        }        //通过判断系统剪贴板判定粘贴功能可用性判断        Transferable contents = clipBoard.getContents(this);        if (contents == null) {            me4.setEnabled(false);            popupMenu_Paste.setEnabled(false);            bt_paste.setEnabled(false);        } else {            me4.setEnabled(true);            popupMenu_Paste.setEnabled(true);            bt_paste.setEnabled(true);        }    }//方法checkMenuItemEnabled()结束//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$实现MouseListener接口中的方法    public void mouseClicked(MouseEvent e) {        checkMenuItemEnabled();    }    public void mouseEntered(MouseEvent e) {    }    public void mouseExited(MouseEvent e) {        checkMenuItemEnabled();    }    public void mousePressed(MouseEvent e) {    }    public void mouseReleased(MouseEvent e) {//显示右键菜单        if (e.isPopupTrigger())// getY() 返回事件相对于源组件的垂直 y 坐标。 int getYOnScreen() 返回事件的绝对垂直 y 坐标。        //此处用前者会出现菜单位置问题        {            popupMenu.show(this, e.getXOnScreen(), e.getYOnScreen());        }    }//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$实现DocumentListener接口中的方法    public void changedUpdate(DocumentEvent arg0) {        me1.setEnabled(true);        popupMenu_Undo.setEnabled(true);        bt_undo.setEnabled(true);    }    public void insertUpdate(DocumentEvent arg0) {        me1.setEnabled(true);        popupMenu_Undo.setEnabled(true);        bt_undo.setEnabled(true);    }    public void removeUpdate(DocumentEvent arg0) {        me1.setEnabled(true);        popupMenu_Undo.setEnabled(true);        bt_undo.setEnabled(true);    }//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$    //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$实现Transferable接口的方法    public Object getTransferData(DataFlavor arg0)            throws UnsupportedFlavorException, IOException {        // TODO 自动生成方法存根        return null;    }    public DataFlavor[] getTransferDataFlavors() {        // TODO 自动生成方法存根        return null;    }    public boolean isDataFlavorSupported(DataFlavor arg0) {        // TODO 自动生成方法存根        return false;    }}//DaveNotepad类结束$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$class JAVAFileFilter extends FileFilter {//实现文件过滤    String ext;    public JAVAFileFilter(String ext) {        this.ext = ext;    }    public boolean accept(File file) {        if (file.isDirectory()) {            return true;        }        String fileName = file.getName();        int index = fileName.lastIndexOf('.');        if (index > 0 && index < fileName.length() - 1) {            String extension = fileName.substring(index + 1).toLowerCase();            if (extension.equals(ext)) {                return true;            }        }        return false;    }    public String getDescription() {        if (ext.equals("txt")) {            return "记事本文件(*.txt)";        }        if (ext.equals("c")) {            return "C源文件 (*.c)";        }        if (ext.equals("cpp")) {            return "C++源文件(*.cpp)";        }        if (ext.equals("sql")) {            return "SQL文件(*.sql)";        }        if (ext.equals("doc")) {            return "Word文档(*.doc)";        }        if (ext.equals("java")) {            return "JAVA源文件 (*.java)";        }        if (ext.equals("class")) {

⌨️ 快捷键说明

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