2012-04-12 1 views
3

Прямо сейчас, я использую Java Swing для создания JEditorPane, в первую очередь, за его способность иметь гиперссылки. Я успешно смогла отобразить ссылки и заставить их выполнять поведение по клику, но у меня возникают проблемы с форматированием.Форматирование курсора JEditorPane, подсказки, ссылки

  1. Как я могу установить курсор так, чтобы он был обычно стрелкой, но меняет текст на курсор при наведении курсора на текст? (По сути, поведение курсора в веб-браузере). Я пробовал

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

    но это сделало его текстовым курсором везде, даже если он не зависает над текстом. Прямо сейчас, нависая над ссылкой, отображается стрелка указателя; Я хотел бы также сохранить эту функциональность.

  2. Каков наилучший способ отображения всплывающих подсказок или текста курсора мыши при наведении курсора на ссылку? Я попытался изменить атрибут title ссылки, но ничего не появилось.

  3. Я пытался реализовать ссылки, чтобы перейти к подразделу страницы, так как http://en.wikipedia.org/wiki/Xkcd#History перенесет вас непосредственно в подраздел «История» на странице xkcd в Википедии. Как я могу это сделать?

Ответ на любой из них был бы большим (и несколько были бы классными xP). Большое спасибо за вашу помощь!

ответ

3

Как вы сказали, можно просто дать ответы на одну точку, а, позвольте мне попробовать один за другим, вот ответ на ваш последний Поинт 3

Просто укажите идентификатор в теге, как это

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

Сейчас где-то в нижней части страницы написать это:

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

при нажатии на эту ссылку, вы достигнете выше a из PAGE.

2

Баллы 1 & 2 могут быть решены с использованием упомянутого подхода here. В частности, методы преобразования представлений/моделей позволят вам установить условия setCursor() и getToolTipText() соответственно.

2

Вы можете получить исходный код отсюда http://java-sl.com/JEditorPaneStructureTool.html Он показывает, как получить границы обзора текста. Сначала вы получаете позицию каретки для текущего мышиного poiunter с помощью метода viewToModel(). Затем спуститесь в дерево представлений, чтобы получить представление листа, а calcualte - границы. См. Это http://java-sl.com/tip_view_rectangle.html

Если вы указатель мыши в прямоугольнике представления, то наведите указатель мыши на текст.

Вы можете проверить, является ли текст в позиции каретки ссылкой и показать вашу подсказку.

Используйте это http://java-sl.com/tip_links_in_editable.html, чтобы узнать, как определить, находится ли мышь по ссылке.

Point 3.rd ответил: @nIcE cOw