2012-04-12 2 views
3

지금, 나는 주로 Java Swing을 사용하여 하이퍼 링크를 가질 수있는 JEditorPane을 생성하고 있습니다. 성공적으로 링크를 표시하고 클릭시 행동을 실행하게했지만 형식에 몇 가지 문제가 있습니다.JEditorPane의 커서, 툴 팁, 링크의 서식 설정

  1. 커서를 일반적으로 화살표로 설정하고 텍스트 위로 마우스를 가져 가면 텍스트 커서로 변경하려면 어떻게해야합니까? (본질적으로, 커서가 웹 브라우저 내에서 갖는 행동). 나는

    EditorPane.setCursor(new Cursor(Cursor.TEXT_CURSOR)) 
    

    을 시도하지만 텍스트 위로 마우스를 이동하지 경우에도, 텍스트 커서 모든 곳을했다. 지금은 링크 위로 마우스를 가져 가면 포인터 모양이 표시됩니다. 그 기능을 유지하고 싶습니다.

  2. 링크 위로 마우스를 가져 가면 툴팁이나 마우스 오버 텍스트를 표시하는 가장 좋은 방법은 무엇입니까? 링크의 제목 속성을 수정하려고했지만 아무 것도 나타나지 않았습니다.

  3. 위키 피 디아의 xkcd 페이지의 History 하위 섹션으로 직접 이동하는 링크를 구현하려고했습니다. http://en.wikipedia.org/wiki/Xkcd#History과 같은 부분이 있습니다. 어떻게해야합니까?

이 중 하나에 대한 답변은 훌륭합니다 (그리고 여러 항목은 xP가 될 것입니다). 도와 주셔서 정말로 고맙습니다!

답변

3

하나는 단순히 여기에 3

그냥 같이 태그에 ID를 제공 마지막 포인트에 대한 대답은, 내가 하나 하나를 시도 할뿐만 아니라 하나의 점에 대한 답변을 제공 할 수 있습니다 말했듯

<h1><a id = "top"></a>First Line</h1> 

이제 어딘가에 페이지 하단이 쓰기 :

<p><a href = "#top">Return to TOP</a></p> 

이 링크를 클릭, 당신은 위의가에 도달 할 것 페이지의

2

점 1 & 2는 here과 같은 접근법을 사용하여 해결할 수 있습니다. 특히보기/모델 변환 방법을 사용하면 setCursor()getToolTipText()을 각각 지정할 수 있습니다.

2

여기에서 소스를 얻을 수 있습니다. 텍스트보기 범위를 얻는 방법을 보여줍니다. 먼저 viewToModel() 메서드를 사용하여 현재 마우스 포인터의 캐럿 위치를 얻습니다. 그런 다음 리프 뷰를 달성 한 Views 트리로 이동하여 경계를 계산합니다. 이 부분을 보시려면 http://java-sl.com/tip_view_rectangle.html

마우스 포인터를보기의 사각형에 놓고 마우스를 텍스트 위에 올리십시오.

캐럿 위치에있는 텍스트가 링크인지, 툴팁을 표시하는지 확인할 수 있습니다.

마우스가 링크를 넘는 지 확인하는 방법을 보려면 http://java-sl.com/tip_links_in_editable.html을 사용하십시오.

포인트 3.rd는 @nIcE로 답변했습니다.