2010-06-15 3 views
2

여러 줄의 텍스트 컨트롤이있는 Java SWT GUI가 있습니다. 텍스트 상자 안에 커서의 위치에 영향을주지 않고 텍스트 컨트롤에 텍스트 줄을 추가하고 싶습니다. 특히 사용자는 텍스트 컨트롤의 맨 위에있는 텍스트를 스크롤하고 선택하고 새로운 텍스트 행을 아래쪽에 추가 할 수 있어야합니다.Java SWT 텍스트 (SWT.MULTI) 스크롤하지 않고 텍스트 추가

이것이 가능합니까?

답변

2

텍스트를 추가 할 때 깜박임 문제를 해결하기 위해 StyleText 컨트롤을 사용하도록 전환했습니다. 이 컨트롤을 사용하여 다음 코드가 새 위치로 스크롤하지 않고 텍스트를 추가하는 문제를 해결했습니다.

 
textOutput.setRedraw(false); 
int scrollP = textOutput.getTopIndex(); 
Point selectionP = textOutput.getSelection();    
textOutput.append(traceText); 
textOutput.setSelection(selectionP); 
textOutput.setTopIndex(scrollP); 
textOutput.setRedraw(true); 
+0

사실 StyledText 컨트롤을 사용하면 appendText가 컨트롤을 자동 스크롤하지 않기 때문에이 컨트롤은 모두 필요하지 않습니다. 그러나 위 코드는 Text 컨트롤에서 작동합니다. – mchr

+0

나쁜 점은 텍스트를 업데이트/추가 할 때마다이 코드를 추가해야한다는 것입니다. 좀 더 간단한 방법으로 보일 것입니다. –

관련 문제