2015-01-28 4 views
0

내 사용자가 JTextPane의 마지막 문자가 줄 바꿈이면 커서가 더 작음을 알았습니다. 디버그 문은 내가 클릭 한 위치에 상관없이 동일한 커서와 동일한 글꼴을 나타 냈습니다. JTextPane에 대한 Oracle 데모를 다운로드했으며 동일한 동작을 볼 수 있으므로 상자 동작이 아닌 것 같습니다.줄 바꿈이 끝난 후 jtextpane 커서가 다른 크기

누구든지이 문제를 해결할 방법을 알고 계십니까?

답변

2

내 사용자는 JTextPane가의 마지막 문자가 개행 인 경우, 커서가

작은 캐럿이 라인에 사용되는 가장 큰 폰트의 높이를 나타내는 것으로 나타났습니다. 텍스트가 없으므로 더 작은 캐럿이 사용됩니다. 이것은 정말로 걱정할 문제입니까?

나는 JTextPane가에 대한 오라클 데모를 다운로드하여 TextComponentDemo 다음 코드 줄을 추가 동일한 동작

을 볼 수

Rectangle caretCoords = textPane.modelToView(dot); 
System.out.println(caretCoords); // added 

당신은 그 높이의 변화를 볼 수 있습니다. 사각형의 높이는 DefaultCaret 클래스에서 캐럿을 칠하는 데 사용됩니다.

modelToView(...) 메서드를 JTextPane으로 다시 정의하여 텍스트 창의 글꼴 FontMetrics를 기준으로 최소 높이를 반환 할 수 있습니다. 영향을 줄 수있는 텍스트 창의 다른 기능을 모릅니다.

또는 paint()DefaultCaret 방법을 재정의하여 FontMetrics를 기준으로 최소 높이를 사용할 수도 있습니다.

+0

대단히 감사합니다. 나는 그것이 걱정할 문제가 아니라는 것에 동의하지만, 다음 번에 더 이상 문제가 없으면 사용자를 행복하게하기 위해 귀하의 제안에 감사드립니다. –