public void insertUpdate(DocumentEvent arg0)
{
try {
String text = arg0.getDocument().getText(0, arg0.getDocument().getLength());
if(text.startsWith("/w") || text.startsWith("/w"))
{
if(commandList.size()>0)
{
System.out.println(arg0.getDocument().getLength());
//arg0.getDocument().insertString(arg0.getDocument().getLength(), commandList.lastElement(), null);
}
}
} catch (BadLocationException e) {
e.printStackTrace();
}
}
DocumentListener를 사용하여 값이 입력된 것을 감지하여 /w 명령어가 입력되면 최근 사용된 commandList.lastElement()(-> 마지막으로 입력된 ID 값을 가지고 있음)를 삽입하는 쪽으로 사용해보려고 했지만
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification 에러가 뜨더군요..
다른 방법으론 텍스트 필드에 포커스 리스너를 사용하여 포커스를 가지게 되면 쓰레드를 돌려 계속해서 값을 받아와서 체크하는 방법도 있겠지만
위의 방식과 비슷하도록 사용 못하는 것인가요?