//模糊查找
fuzzyPanel = new JPanel (new FlowLayout());
fuzzyField = new JTextField(20);
fuzzyButton = new JButton("(模糊)查找");
fuzzyPanel.add(fuzzyField);
fuzzyPanel.add(fuzzyButton);
fuzzyButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
String patternString = fuzzyField.getText().trim();
Pattern pattern = null;
try
{
pattern = Pattern.compile(patternString,Pattern.DOTALL);
}
catch(PatternSyntaxException exception)
{
JOptionPane.showMessageDialog(container,"Pattern syntax error",
"提示信息",JOptionPane.INFORMATION_MESSAGE);
System.exit(1);
}
String allText = text.getText();
if(allText==null) System.exit(0);
Matcher matcher = pattern.matcher(allText);
if(!matcher.find())
JOptionPane.showMessageDialog(container,"cannot match",
"提示信息",JOptionPane.INFORMATION_MESSAGE);
else
{
while(matcher.find())
{
Highlighter h = text.getHighlighter();
int start = matcher.start();
int end = matcher.end();
try {
h.addHighlight(start, end, DefaultHighlighter.DefaultPainter);
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
start=end;
} }
}
});这是我模糊查找的代码 目的是让被查到的对象全部高亮 但是本应该第一个被查到的字符串却总是不亮 请问为什么 并请帮忙修改一下 谢谢各位了
fuzzyPanel = new JPanel (new FlowLayout());
fuzzyField = new JTextField(20);
fuzzyButton = new JButton("(模糊)查找");
fuzzyPanel.add(fuzzyField);
fuzzyPanel.add(fuzzyButton);
fuzzyButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
String patternString = fuzzyField.getText().trim();
Pattern pattern = null;
try
{
pattern = Pattern.compile(patternString,Pattern.DOTALL);
}
catch(PatternSyntaxException exception)
{
JOptionPane.showMessageDialog(container,"Pattern syntax error",
"提示信息",JOptionPane.INFORMATION_MESSAGE);
System.exit(1);
}
String allText = text.getText();
if(allText==null) System.exit(0);
Matcher matcher = pattern.matcher(allText);
if(!matcher.find())
JOptionPane.showMessageDialog(container,"cannot match",
"提示信息",JOptionPane.INFORMATION_MESSAGE);
else
{
while(matcher.find())
{
Highlighter h = text.getHighlighter();
int start = matcher.start();
int end = matcher.end();
try {
h.addHighlight(start, end, DefaultHighlighter.DefaultPainter);
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
start=end;
} }
}
});这是我模糊查找的代码 目的是让被查到的对象全部高亮 但是本应该第一个被查到的字符串却总是不亮 请问为什么 并请帮忙修改一下 谢谢各位了
请问while中的条件应该填什么呢 实在是整不明白了
if(!matcher.matches())