Java:IllegalStateException

来源:百度知道 编辑:UC知道 时间:2024/05/30 00:59:40
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;
import javax.swing.event.*;
import javax.swing.text.*;
import java.util.regex.*;

public class Notepad extends JFrame
{
private JTextPane jText = new JTextPane();
private boolean ignore = false;

//Java关键字
private String[] javaKeyWords = {"public"};

public static void main(String[] args) throws Exception
{
Notepad n = new Notepad();
}

public Notepad()
{
super();
setLocation(100, 100);
setSize(800, 800);
jText.setEditable(true);
jText.setFont(new Font("宋体", Font.PLAIN, 14));
add(new JScrollPane(jText));
jText.getDocument().addDocumentListener(new MyDocumentListener());
setVisible(true);
}

private void markKeyWords()//关键字着色
{
Pattern p;
Matcher m;
String val

你的MyDocumentListener设计不是很合理,建议还是用键盘响应和DocumentListener中的textValueChanged做,DocumentListener中其他的几个事件响应不要指向到textValueChanged中

参考

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;

public class MyFrame extends JFrame
{
static JTextField jtf;

class PercentCheck implements Runnable {
public void run() {
String s = jtf.getText ();
if (s.indexOf ("%") == -1) {
jtf.setText (s + "%");
}
}
};

public MyFrame ()
{
super ("JTextField Monitor");

jtf = new JTextField ("%");
jtf.setPreferredSize (new Dimension (250, 25));
jtf.getDocument ().addDocumentListener (new DocumentListener ()
{
public void insertUpdate (DocumentEvent de)