📄 fandr.java
字号:
package wordpad;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import wordpad.WordPad;
public class FandR extends JDialog implements ActionListener
{
private Find find = null;
private Replace replace = null;
private String s, s1;
private int start;
private int end;
private JTabbedPane fandr = new JTabbedPane();
public FandR(JFrame f)
{
super(f, "查找和替换");
find = new Find();
replace = new Replace();
fandr.add(find, "查找");
fandr.add(replace, "替换");
add(fandr, BorderLayout.CENTER);
setSize(389,167);
setLocation(46,245);
setVisible(true);
find.findnext.addActionListener(this);
find.cancel.addActionListener(this);
replace.findnext.addActionListener(this);
replace.replace.addActionListener(this);
replace.replaceall.addActionListener(this);
replace.cancel.addActionListener(this);
}
class Find extends JPanel
{
private JTextField findtext = new JTextField(20);
private JLabel findtext1 = new JLabel("查找内容:(W)");
private JButton findnext = new JButton("查找下一个(F)");
private JButton cancel = new JButton("取消");
public Find()
{
findtext.setText(WordPad.TextArea.getSelectedText());
JPanel p1 = new JPanel();
p1.add(findtext1);
p1.add(findtext);
JPanel p2 = new JPanel();
p2.add(findnext);
p2.add(cancel);
setLayout(new BorderLayout());
add(p1,BorderLayout.NORTH);
add(p2,BorderLayout.SOUTH);
setVisible(true);
}
}
class Replace extends JPanel
{
private JTextField findtext = new JTextField(20);
private JTextField replacetext = new JTextField(20);
private JLabel findtext1 = new JLabel("查找内容:(N)");
private JLabel replacetext1 = new JLabel("替换为:(P)");
private JButton findnext = new JButton("查找下一个(F)");
private JButton replace = new JButton("替换(R)");
private JButton replaceall = new JButton("替换全部(A)");
private JButton cancel = new JButton("取消");
public Replace()
{
findtext.setText(WordPad.TextArea.getSelectedText());
JPanel p1 = new JPanel();
p1.add(findtext1);
p1.add(findtext);
JPanel p2 = new JPanel();
p2.add(replacetext1);
p2.add(replacetext);
JPanel p3 = new JPanel();
p3.add(findnext);
p3.add(replace);
p3.add(replaceall);
p3.add(cancel);
setLayout(new BorderLayout());
add("North",p1);
add("Center",p2);
add("South",p3);
setVisible(true);
setResizable(false);
}
}
JTabbedPane getTabbedPane()
{
return fandr;
}
void NotFound()
{
start = 0;
end = 0;
WordPad.TextArea.setCaretPosition(0);
JOptionPane.showMessageDialog(null,"写字板 已完成对文档的搜索,未找到搜索项。","写字板",JOptionPane.ERROR_MESSAGE);
}
Boolean FindNext(String find)
{
start = WordPad.TextArea.getText().indexOf(find, end);
if(start==-1)
{
NotFound();
return false;
}
end = start + find.length();
WordPad.TextArea.select(start, end);
return true;
}
void Replace(String find, String replace)
{
if(WordPad.TextArea.getSelectedText()!=null && !WordPad.TextArea.getSelectedText().equals(replace))
{
WordPad.TextArea.replaceSelection(replace);
}
else
{
if(FindNext(find))
WordPad.TextArea.replaceSelection(replace);
}
}
void ReplaceAll(String find, String replace)
{
start = 0;
end = 0;
while(FindNext(find))
{
WordPad.TextArea.replaceSelection(replace);
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==find.findnext)
FindNext(find.findtext.getText());
else if(e.getSource()==replace.findnext)
FindNext(replace.findtext.getText());
else if(e.getSource()==replace.replace)
Replace(replace.findtext.getText(), replace.replacetext.getText());
else if(e.getSource()==replace.replaceall)
ReplaceAll(replace.findtext.getText(), replace.replacetext.getText());
else if(e.getSource()==find.cancel || e.getSource()==replace.cancel)
this.dispose();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -