2012-05-24 36 views
2

好的,我知道帖子的标题非常熟悉。我在这个主题上看到了很多帖子,但其中没有一篇介绍了Java中的代码。我有这个HyperlinkListener类:在Java中单击链接时更改颜色

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

请对代码块使用一致的逻辑缩进。并且将'隔行'视为空白区域 - 谢谢。 –

回答

4

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

+0

你能举个例子吗,因为我似乎无法理解如何在文本中获得位置?我可以在鼠标点击的位置获得X和Y,但是如何指定整个链接文本的颜色? – curious