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

📄 replacedialog.java

📁 java做的模仿记事本的程序
💻 JAVA
字号:
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.event.*; 
import javax.swing.border.*; 

public class ReplaceDialog extends JDialog  
{ 
    private Container pane; 
    private JTextArea text; 
    private JFrame owner; 
    private StringBuffer findString, replaceString; 
    private JLabel findLabel, replaceLabel; 
    private JTextField findText, replaceText; 
    private JCheckBox upperLowerCase; 
    private JButton findNext, cancel, replaceButton, allReplaceButton; 
     
    public ReplaceDialog( JFrame frame, JTextArea textArea, StringBuffer fString, 
        StringBuffer rString ) 
    { 
        super( frame, "替换" ); 
        owner = frame; 
        text = textArea; 
        findString = fString; 
        replaceString = rString; 
        pane = getContentPane(); 
        pane.setLayout( null ); 
        findLabel = new JLabel( "查找内容:" ); 
        findLabel.setBounds(18, 20, 70, 21); 
        pane.add( findLabel ); 
        findText = new JTextField( findString.toString() ); 
        findText.setBounds(94, 20, 147, 21); 
        findText.getDocument().addDocumentListener( 
            new DocumentListener() 
            { 
                public void changedUpdate( DocumentEvent e ) 
                { 
                } 
                 
                public void insertUpdate( DocumentEvent e ) 
                { 
                    findNext.setEnabled( true ); 
                    replaceButton.setEnabled( true ); 
                    allReplaceButton.setEnabled( true ); 
                } 
                 
                public void removeUpdate( DocumentEvent e ) 
                { 
                    if( findText.getText().equals( "" ) ) 
                    { 
                        findNext.setEnabled( false ); 
                        replaceButton.setEnabled( false ); 
                        allReplaceButton.setEnabled( false ); 
                }  
                } 
            } 
        ); 
        pane.add( findText ); 
        findNext = new JButton( "查找下一个" ); 
        findNext.setBounds(262, 20, 107, 21); 
        findNext.setEnabled( !findText.getText().equals( "" ) ); 
        findNext.addActionListener( 
            new ActionListener() 
            { 
                public void actionPerformed( ActionEvent e ) 
                { 
                    findString.delete( 0, findString.length() ); 
                    findString.append( findText.getText() ); 
                    replaceString.delete( 0, replaceString.length() ); 
                    replaceString.append( replaceText.getText() ); 
                    find(); 
                } 
            } 
        ); 
        pane.add( findNext ); 
        upperLowerCase = new JCheckBox( "区分大小写" ); 
        upperLowerCase.setBounds(18, 104, 90, 21); 
        pane.add( upperLowerCase ); 
        replaceLabel = new JLabel( "替换为:" ); 
        replaceLabel.setBounds(18, 48, 70, 21); 
        pane.add( replaceLabel ); 
        replaceText = new JTextField( replaceString.toString() ); 
        replaceText.setBounds(94, 48, 147, 21); 
        pane.add( replaceText ); 
        replaceButton = new JButton( "替换" ); 
        replaceButton.setEnabled( !findText.getText().equals( "" ) ); 
        replaceButton.setBounds(262, 48, 107, 21); 
        replaceButton.addActionListener( 
            new ActionListener() 
            { 
                public void actionPerformed( ActionEvent e ) 
                { 
                    findString.delete( 0, findString.length() ); 
                    findString.append( findText.getText() ); 
                    replaceString.delete( 0, replaceString.length() ); 
                    replaceString.append( replaceText.getText() ); 
                    replace(); 
                } 
            } 
        ); 
        pane.add( replaceButton ); 
        allReplaceButton = new JButton( "全部替换" ); 
        allReplaceButton.setEnabled( !findText.getText().equals( "" ) ); 
        allReplaceButton.setBounds(262, 76, 107, 21); 
        allReplaceButton.addActionListener( 
            new ActionListener() 
            { 
                public void actionPerformed( ActionEvent e ) 
                { 
                    findString.delete( 0, findString.length() ); 
                    findString.append( findText.getText() ); 
                    replaceString.delete( 0, replaceString.length() ); 
                    replaceString.append( replaceText.getText() ); 
                    allReplace(); 
                } 
            } 
        ); 
        pane.add( allReplaceButton ); 
        cancel = new JButton( "取消" ); 
        cancel.setBounds(262, 104, 107, 21); 
        cancel.addActionListener( 
            new ActionListener() 
            { 
                public void actionPerformed( ActionEvent e ) 
                { 
                    dispose(); 
                } 
            } 
        ); 
        pane.add( cancel ); 
        setSize( 395, 175 ); 
        int x = ( int )( owner.getLocation().getX() + owner.getWidth() / 2 -200 ); 
        x = ( x > 624 ? 624 : x ); 
        x = ( x < 0 ? 0 : x ); 
        int y = ( int )( owner.getLocation().getY() + owner.getHeight() / 2 - 87 ); 
        y = ( y > 593 ? 593 : y ); 
        y = ( y < 0 ? 0 : y ); 
        setLocation( x, y ); 
        setResizable( false ); 
    } 
     
    private void find() 
    { 
        int x = text.getCaretPosition(); 
        String tString = text.getText(); 
        String fString = findString.toString(); 
        if( ! upperLowerCase.isSelected() ) 
        { 
            tString = tString.toLowerCase(); 
            fString = fString.toLowerCase(); 
        } 
        x = tString.indexOf( fString, x ); 
        if( x == -1 ) 
        { 
            JOptionPane.showMessageDialog( owner, "没找到 \"" + fString + "\"" ); 
        } 
        else 
        { 
            text.select( x, x + fString.length() ); 
        } 
    } 
     
    private void replace() 
    { 
        if( text.getSelectedText() != null ) 
        { 
            if( upperLowerCase.isSelected() ) 
            { 
                if( text.getSelectedText().equals( findString.toString() ) ) 
                    text.replaceSelection( replaceString.toString() ); 
            } 
            else 
            { 
                if( text.getSelectedText().toLowerCase().equals( findString.toString().toLowerCase() ) ) 
                    text.replaceSelection( replaceString.toString() ); 
            } 
        } 
        find(); 
    } 
     
    private void allReplace() 
    { 
        String tString = text.getText(); 
        String fString = findString.toString(); 
        if( ! upperLowerCase.isSelected() ) 
        { 
            tString = tString.toLowerCase(); 
            fString = fString.toLowerCase(); 
        } 
        int x = 0; 
        while( true ) 
        { 
            x = tString.indexOf( fString, x ); 
            if( x == -1 ) break; 
            text.select( x, x + fString.length() ); 
            text.replaceSelection( replaceString.toString() ); 
            x = text.getCaretPosition(); 
            tString = text.getText(); 
            fString = findString.toString(); 
            if( ! upperLowerCase.isSelected() ) 
            { 
                tString = tString.toLowerCase(); 
                fString = fString.toLowerCase(); 
            } 
        } 
    } 
} 

⌨️ 快捷键说明

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