JTextPane에서 텍스트를 대체하는 걸림돌을 실행 한 것 같습니다. 기존 텍스트를 변경하는 데 필요한 몇 개의 JTextPane이 있습니다. 초기 텍스트를 사용하여이 작업을 수행 할 수 있지만 문서를 변경하기 위해 호출 할 때 전화에서이 변경 내용이 표시되지만 패널이 업데이트되지 않습니다.JTextPane에서 StyledDocument를 바꾸는 방법
switch(module.getCurrentQuestionNumber())
{
case 1:
doc = module8.loadQuestion1();
udoc = module8.loadQuestion1();
codeTextPane.setDocument(doc);
uCodeTextPane.setDocument(udoc);
toolPane.add(module.loadQuestion1Panel(outputTextPane));
uToolPane.add(module.loadQuestion1Panel(uOutputTextPane));
break;
case 2:
doc = module8.loadQuestion2();
udoc = module8.loadQuestion2();
codeTextPane.setDocument(doc);
uCodeTextPane.setDocument(udoc);
toolPane.add(module.loadQuestion2Panel(outputTextPane));
uToolPane.add(module.loadQuestion2Panel(uOutputTextPane));
break;
}
module.getCurrentQuestionNumber()
이 1이면 패널이로드되고 모든 것이 의도 한대로 작동합니다. module.getCurrentQuestionNumber()
이 2를 반환하면 두 도큐멘트 & udoc에 올바른 정보가 포함되어 있습니다 (프로그램을 통해 단계를 밟았으며 케이스 2에서 호출 할 때 문서에 업데이트 된 질문이 표시됨). 그러나 codeTextPane을 업데이트하지 않으며 toolPane는 새로운 패널을로드합니다. repaint() 및 update()를 호출하려고 시도했지만 어느 것도 작동하지 않는 것 같습니다. 내가 놓친 게 있니?
수신기에서이 작업을 수행하지 않았는지 확인하십시오. 예를 들어, 버튼을 눌렀을 때 실행되는 리스너를 설정했지만 리스너에있는 동안 위의 코드를 실행하면 작동하지 않을 수 있습니다. 나는 이것에 대해 100 % 확실하다고 확신하지는 않는다. – ajb
나는 청취자에게서 이것을 부르지 않을 것이다. 나는 청취자로부터 나의 메인 GUI에있는 메소드를 호출한다. 필자는 본질적으로 독립된 모듈을 별도의 클래스로 구축하고 호출 할 때 주 GUI에 표시 할 수 있기를 원했습니다. 나는 이것이 최선의 방법이라고 생각했다. 스타일있는 문서를 모듈에서 작성하여 GUI로 리턴하고 gui가 jtextpane에 표시하도록하십시오. jsplitpane 안에 중첩 된 jscrollpane 안에 jtextpane이 중첩되어 있습니다. 나는 이것을 설정하는 적절한 방법이라고 믿는다. 그러나 일단 텍스트 판에 글을 쓰면 새 문서로 업데이트 할 수 없다. – jbolt