2012-12-10 2 views
2

클릭 가능한 Jlabel 텍스트 안에 단어가 있고 싶습니다. 각 단어에 대해 MouseListener를 등록하거나 클릭 한 단어를 얻고 싶습니다 (그렇지 않은 경우). 아래 이미지는 내가 원하는 것을 보여줍니다. 이것이 가능한가 ?!JLabel 내에서 클릭 할 수있는 단어

enter image description here

답변

6

아니, 당신은 단지 전체 JLabel의 클릭 할 수 있습니다. 그러나 몇 개의 JLabel을 서로 옆에 배치 할 수 있으므로 클릭 몇 번만 (모양이 다름) 만 만들 수 있습니다.

예를 들어 HTML을 사용할 수도 있습니다. JEditorPane에 들어가서 HTML을 통해 특정 단어를 클릭 할 수있게하십시오. 그 here에 대해 뭔가를 발견, 이것은 당신을 위해처럼 보일 수있는 방법입니다 :

JEditorPane jep = new JEditorPane("text/html", "Click <a href='pdf'>here</a> to display a PDF file. For more information click <a href='info'>here</a>."); 
jep.setEditable(false); 
jep.setOpaque(false); 
jep.addHyperlinkListener(new HyperlinkListener() { 
    public void hyperlinkUpdate(HyperlinkEvent hle) { 
    if (HyperlinkEvent.EventType.ACTIVATED.equals(hle.getEventType())) { 
     if (hle.getDescription().equalsIgnoreCase("pdf")) { 
     // display PDF 
     } else if (hle.getDescription().equalsIgnoreCase("info")) { 
     // display information 
     } 
    } 
    } 
}); 
+0

일을하는 JEditorPane에 대한 HTML 솔루션! 작품 큰 :) –

+0

당신의 재생을 주셔서 감사합니다,하지만 unfortunatly 코드가 나를 위해 작동하지 않는 이유는 (오류가) 모르겠어, 그리고 sth을 인쇄 system.out을 추가했지만 아무것도 클릭하면 콘솔에, 또한 텍스트 "여기"는 링크가 아닙니다!? – Adil

+0

그 코드를 테스트 했더니 완벽하게 작동합니다. 그리고 '여기'가 링크로 표시됩니다. 어떤 JDK 버전을 사용하고 있습니까? 문제가 무엇인지 알려주지 마십시오. 디버깅하고 추적하십시오. 물론 JPanel 또는 다른 컨테이너에 해당 창을 추가해야합니다. – Blacklight

관련 문제