2015-04-22 43 views
0

正在爲我的班級工作。我試圖添加一個可點擊的超鏈接到一個彈出對話框(在Java swing gui中),用戶可以點擊它們將它們帶到一個網頁。目前,我發現彈出了可自行工作的超鏈接,但沒有任何可用於附加到我的對話框的超鏈接。有沒有辦法做這樣的事情?我正在使用二叉搜索樹來執行數據,是否可以將它添加到節點,toString和addNode方法中,並使用可點擊的超鏈接將它放在對話框中?我正在使用的代碼如下:Java GUI對話框超鏈接

private void HydrogenActionPerformed(java.awt.event.ActionEvent evt) {           

JOptionPane.showMessageDialog(null, (new1.theTree.findNode(1) 
     + 
JPanel p = new JPanel(); 

JLabel link = new JLabel("http://en.wikipedia.org/wiki/"+"Hydrogen"); 
link.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 
link.addMouseListener(new MouseAdapter() 
    { 
    public void mouseClicked(MouseEvent e) 
    { 
     if (e.getClickCount() > 0) 
     { 
      if (Desktop.isDesktopSupported()) 
      { 
        Desktop desktop = Desktop.getDesktop(); 
        try 
        { 
         String element = "Hydrogen"; 
         URI uri = new URI("http://en.wikipedia.org/wiki/"+element); 
         desktop.browse(uri); 
        } 
        catch (IOException ex) 
        { 
         ex.printStackTrace(); 
        } 
        catch (URISyntaxException ex) 
        { 
         ex.printStackTrace(); 
        } 
      } 
     } 
    } 
    }); 

p.add(link); getContentPane()。add(BorderLayout.NORTH,p);));

它不能正常工作,我不知道該如何工作。我願意接受任何想法。 謝謝。

+0

JOptionPane.showMesageDialog(Component,Object)的Object參數可以帶一個將顯示在對話框上的組件。添加你想要顯示給組件的所有內容,並將此引用傳遞給JOptionPane – MadProgrammer

回答

1

new1.theTree.findNode(1)結果在JLabel

添加這個標籤和超鏈接標籤相同JPanel,奠定了但是你想

通過其Object參數傳遞引用此面板的JOptionPaneJOptionPane.showMessageDialog(Component, Object)

+0

好吧,現在我可以打印所有信息。只需要弄清楚如何使它可點擊。 –

+0

管理得到所有要打印的信息,現在我需要弄清楚爲什麼\ n無法格式化它打印的字符串。 –

+0

更容易製作一系列'JLabel'並將它們佈置在單獨的'JPanel'上,但這就是我。您也可以使用''...... – MadProgrammer