java记事本实现查找功能
elseif(src==itemSeek){JDialogsearch=newJDialog(this,"查找和替换");search.setSize(400,200);...
else if(src == itemSeek)
{
JDialog search=new JDialog(this,"查找和替换");
search.setSize(400, 200);
search.setLocation(450,250);
JLabel label1=new JLabel("查找的内容");
JLabel label2=new JLabel("替换的内容");
final JTextField text_1=new JTextField(10);
final JTextField text_2=new JTextField(10);
JButton buttonFind=new JButton("查找下一个");
JButton buttonChange=new JButton("替换");
JPanel panel=new JPanel(new GridLayout(2,3));
panel.add(label1);
panel.add(text_1);
panel.add(buttonFind);
panel.add(label2);
panel.add(text_2);
panel.add(buttonChange);
search.add(panel);
search.setVisible(true);
String findText=text_1.getText();//查找的字符串
String myArea=textArea.getText();//当前文本框的内容
start=myArea.indexOf(findText,end);
end=start+findText.length();
if(start == -1)//没有找到
{
JOptionPane.showMessageDialog(null,"没找到"+findText,"记事本",JOptionPane.WARNING_MESSAGE);
textArea.select(start, end);
}
else
{
textArea.select(start,end);
}
String changeText=text_2.getText();//替换的字符串
textArea.select(start, end);
textArea.replaceSelection(changeText);
textArea.select(start, end);
}
}
为啥按了查找没有反应,我是java菜鸟求详细解答 展开
{
JDialog search=new JDialog(this,"查找和替换");
search.setSize(400, 200);
search.setLocation(450,250);
JLabel label1=new JLabel("查找的内容");
JLabel label2=new JLabel("替换的内容");
final JTextField text_1=new JTextField(10);
final JTextField text_2=new JTextField(10);
JButton buttonFind=new JButton("查找下一个");
JButton buttonChange=new JButton("替换");
JPanel panel=new JPanel(new GridLayout(2,3));
panel.add(label1);
panel.add(text_1);
panel.add(buttonFind);
panel.add(label2);
panel.add(text_2);
panel.add(buttonChange);
search.add(panel);
search.setVisible(true);
String findText=text_1.getText();//查找的字符串
String myArea=textArea.getText();//当前文本框的内容
start=myArea.indexOf(findText,end);
end=start+findText.length();
if(start == -1)//没有找到
{
JOptionPane.showMessageDialog(null,"没找到"+findText,"记事本",JOptionPane.WARNING_MESSAGE);
textArea.select(start, end);
}
else
{
textArea.select(start,end);
}
String changeText=text_2.getText();//替换的字符串
textArea.select(start, end);
textArea.replaceSelection(changeText);
textArea.select(start, end);
}
}
为啥按了查找没有反应,我是java菜鸟求详细解答 展开
展开全部
这个可以使用正则。
import javax.swing.event.*;
import javax.swing.text.*;
import java.util.regex.*;
public class IncrementalSearch
implements DocumentListener, ActionListener {
protected JTextComponent content;
public IncrementalSearch(JTextComponent comp) {
this.content = comp;
}
/* DocumentListener implementation */
public void insertUpdate(DocumentEvent evt) {
runNewSearch(evt.getDocument());
}
public void removeUpdate(DocumentEvent evt) {
runNewSearch(evt.getDocument());
}
public void changedUpdate(DocumentEvent evt) {
runNewSearch(evt.getDocument());
}
protected Matcher matcher;
private void runNewSearch(Document query_doc) {
try {
String query = query_doc.getText(0,query_doc.getLength());
Pattern pattern = Pattern.compile(query);
Document content_doc = content.getDocument();
String body = content_doc.getText(0,content_doc.getLength());
matcher = pattern.matcher(body);
continueSearch();
} catch (Exception ex) {
p("exception: " + ex);
ex.printStackTrace();
}
}
private void continueSearch() {
if(matcher != null) {
if(matcher.find()) {
content.getCaret().setDot(matcher.start());
content.getCaret().moveDot(matcher.end());
content.getCaret().setSelectionVisible(true);
}
}
}
/* ActionListener implementation */
public void actionPerformed(ActionEvent evt) {
continueSearch();
}
public static void main(String[] args) {
JTextArea text_area = new JTextArea(10,20);
JScrollPane scroll = new JScrollPane(text_area);
IncrementalSearch isearch = new IncrementalSearch(text_area);
JTextField search_field = new JTextField();
search_field.getDocument().addDocumentListener(isearch);
search_field.addActionListener(isearch);
JFrame frame = new JFrame("Incremental Search Hack");
frame.getContentPane().add("North",search_field);
frame.getContentPane().add("Center",scroll);
frame.pack();
frame.show();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你有没有写监听器啊,继承ActionListener,按钮必须添加监听器后才会起作用。
重写actionPerformed(ActionEvent e) 方法,把你按钮执行的动作放在这个方法里才行。
重写actionPerformed(ActionEvent e) 方法,把你按钮执行的动作放在这个方法里才行。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你没有添加click事件监听吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询