ссылка во встроенном HTML в диалогах Java - PullRequest
1 голос
/ 25 июня 2010

Я создал диалог Java, который использует встроенный HTML для отображения сообщения. Сообщение должно содержать ссылку, при нажатии на которую оно должно инициировать событие (запустить другое диалоговое окно). Я не могу понять, как это сделать. Это действительно возможно?

Вот код:

message = new JLabel("<html>You have selected <i>"+registry_name+" "+ registry_version +"</i><BR> in the " +"<FONT COLOR=\"#0000FF\"><U><A href=\"javascript:popup();\" id=\"test-link\">container.</A></U></FONT>" +"<script type=\"text/javascript\">"+"function popup(){var generator=window.setVisible(true);}</script></html>");
   JOptionPane.showConfirmDialog(dialog.dialog, message , "Selection Window",JOptionPane.CLOSED_OPTION, JOptionPane.INFORMATION_MESSAGE);

Ответы [ 2 ]

2 голосов
/ 25 июня 2010

Вы можете создать JLabel с соответствующим форматированием, чтобы он выглядел и действовал как ссылка (синяя и подчеркнута курсором мыши "hand").

public class Link extends JFrame {
  public static void main(String[] args) {
    new Link();
  }

  public Link(){    
    JLabel link = new JLabel("<html><font color=\"#0000ff\"><u>The link</u></font></html>");
    link.setCursor(new Cursor(Cursor.HAND_CURSOR));
    link.addMouseListener(new MouseListener(){
      public void mouseClicked(MouseEvent e) {
        System.out.println("Link was clicked");
      }
      //other MouseListener methods 
    });

    add(link);
    pack();
    setVisible(true);       
  }
}

Не уверен, что вы можете поместить ссылку внутри JLabel, которая также содержит обычный текст. В этой ситуации вам может потребоваться создать несколько JLabels.

1 голос
/ 25 июня 2010

Вы можете использовать JEditorPane только для чтения, поместить ссылку и использовать HyperlinkListener.

См. Пример на javadoc JEditorPane .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...