在Java中单击时更改链接的颜色

时间:2012-05-24 15:43:57

标签: java css swing hyperlink jeditorpane

好的,我知道帖子的标题非常熟悉。我在这个主题上看到了很多帖子,但是没有关于Java的代码。我有这个HyperlinkListener课程:

private void editorpaneHyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) {
   // TODO add your handling code here:
   if (evt.getEventType() ==
                       HyperlinkEvent.EventType.ACTIVATED) {
                                    try {
                                        try {
    java.awt.Desktop.getDesktop().browse(evt.getURL().toURI());
                                           } catch (IOException ex) {
    Logger.getLogger(MyAssistantGUI.class.getName()).log(Level.SEVERE, null, ex);
                                        } 
                                 catch (URISyntaxException ex) {
    Logger.getLogger(MyAssistantGUI.class.getName()).log(Level.SEVERE, null, ex);
                        }
              System.out.println("Open browser: " + evt.getURL());

我尝试将样式表添加到JEditorPane,然后添加a:active {color: #f00;},但它不起作用。然后我在API中看到java不支持a:active/hoover等。 您可以给我一些关于如何在用户点击链接时更改颜色的建议吗?

1 个答案:

答案 0 :(得分:4)

在听众中,您可以获得文本中的位置。然后将JEditorPane's Document投射到StyledDocument并使用getCharacterElement()传递您拥有的偏移量。对于Element,您可以使用setCharacterAttributes()方法更改属性,例如背景或前景。