?? replacedialog.java
字號(hào):
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( "查找內(nèi)容:" );
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( "查找下一個(gè)" );
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( "區(qū)分大小寫(xiě)" );
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, "沒(méi)找到 \"" + 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();
}
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -