2012-02-16 16 views

回答

5

正如我在我的評論中建議的你應該嘗試JTextPane而不是JTextArea

爲了使超鏈接工作,你需要做以下的事情:

  • 化妝textPane編輯=假。
  • 向它添加HyperlinkListener,以便您可以監視鏈接激活事件。

一個快速演示如下:通過Java打開郵件客戶端的

final JTextPane textPane = new JTextPane(); 
    textPane.setEditable(false); 
    textPane.setContentType("text/html"); 
    textPane.setText("File not found please contact:<a href='mailto:[email protected]'>e-mail to</a> or call 9639"); 
    textPane.addHyperlinkListener(new HyperlinkListener() { 
     @Override 
     public void hyperlinkUpdate(HyperlinkEvent e) { 
      if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { 
       System.out.println(e.getURL()); 
       // write your logic here to process mailTo link. 
      } 
     } 
    }); 

例子:

try { 
    Desktop.getDesktop().mail(new URI(e.getURL() + "")); 
} catch (IOException e1) { 
    e1.printStackTrace(); 
} catch (URISyntaxException e1) { 
    e1.printStackTrace(); 
} 
+0

我收到異常:線程異常「AWT-EventQueue-1」java.lang.NoClassDefFoundError:java/awt/Desktop' – itro 2012-02-16 14:00:33

+0

這是我的java版本:'C:\ Users \ ash> java版本 錯誤:註冊表項'Software \ JavaSoft \ Java Runtime Environment'\ CurrentVersion' 的值爲'1.7.0_01',但需要'1.7'。 錯誤:找不到java.dll 錯誤:無法找到Java SE運行時環境。 – itro 2012-02-16 14:49:53

相關問題