2012-05-24 3 views
2

좋아, 게시물의 제목이 매우 익숙하다는 것을 알고 있습니다. 이 주제에 관한 많은 게시물을 보았지만 그 중 일부는 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 .. etc를 지원하지 않는다는 것을 알았습니다. 사용자가 링크를 클릭 할 때 색상을 변경하는 방법에 대한 제안을 할 수 있습니까?

+1

코드 블록에 일관되고 논리적 인 들여 쓰기를 사용하십시오. 그리고 '공백으로 모든 다른 라인'- 감사합니다. –

답변

4

리스너에서 텍스트의 위치를 ​​얻을 수 있습니다. 그런 다음 JEditorPane'sDocumentStyledDocument으로 전송하고 getCharacterElement()을 사용하여 오프셋을 전달합니다. Element의 경우 setCharacterAttributes() 방법을 사용하여 배경 또는 전경과 같은 속성을 변경할 수 있습니다.

+0

예를 들어 설명해 줄 수 있습니까? 텍스트의 위치를 ​​파악하는 방법을 이해할 수 없기 때문입니다. 마우스를 클릭 한 곳에서 X와 Y를 얻을 수는 있지만 링크의 전체 텍스트에 대해 색상을 어떻게 지정할 수 있습니까? – curious

관련 문제