Como criar um link para um site qualquer, em uma aplicação Java Desktop

É isso aí galera: gostaria de saber, como criar um link, em uma aplicação Java desktop, que ao ser clicado, abre o site especificado, em um navegador da internet qualquer…

vlw

Que componente vc quer que ao ser clicado abra o site? É um JLabel?
Eu não sei como fazer, mas me fala em que componente vc quer o link, que eu to dando uma pesquisada e fazendo testes e se conseguir te aviso, blz? Abs!

Tem o JXHyperlink, da API SwingX.

Site do SwingX:
https://swingx.dev.java.net/

Tutorial SwingX:
http://www.javafree.org/news/view.jf?idNew=3476

Utilize swingx.
JXHyperlink emula um hyperlink e ainda oferece suporte para rollover e click-color.

Abraço

Se vc quiser usar Swing pode fazer assim:

class HyperlinkLabel extends JLabel {
  	  private URL url;
	  
	  private MouseListener linker = new MouseAdapter(){
	    public void mouseClicked(MouseEvent e){
	      HyperlinkLabel self = (HyperlinkLabel) e.getSource();
	      if(self.url == null) return;
	      try{
	    	  Runtime.getRuntime().exec("cmd.exe /C start " + self.url.toString());
	    	  System.out.println("fiz");
	    }catch(IOException e1){ e1.printStackTrace(); }
	    }
	    public void mouseEntered(MouseEvent e){
	      e.getComponent().setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
	    }
	  };
	  
	  public HyperlinkLabel(String label){
	    super(label);
	    setForeground(Color.BLUE);
	    addMouseListener(linker);
	  }
	  
	  public HyperlinkLabel(String label, String tip){
	    this(label);
	    setToolTipText(tip);
	  }
	  
	  public HyperlinkLabel(String label, URL url){
	    this(label);
	    this.url = url;
	  }
	  
	  public HyperlinkLabel(String label, String tip, URL url){
	    this(label, url);
	    setToolTipText(tip);
	  }
	  
	  public void setURL(URL url){ this.url = url; }
	  
	  public URL getURL(){ return url; }
	}

Para criar um Label faça assim:

new HyperlinkLabel("Site do GUJ", "Clique Aqui", new URL("http://www.guj.com.br"));

Detalhe isso não funciona no linux por causa do "cmd.exe /C start ".

Classe adaptada daqui:
http://forums.sun.com/thread.jspa?messageID=3399536

Acho que no java 6 da pra fazer isso com uma linha de código. Se não me engano, existe uma classe Browse, ou algo assim. Já vi isso uma vez, se eu achar posto aqui…

// The solution.

Desktop desk = java.awt.Desktop.getDesktop(); try { desk.browse(new java.net.URI("http://br.geocities.com/javafor")); } catch (Exception e) { e.printStackTrace(); }

E como mostro o desk em um Jlabel ou em um JOptionPane???
Vi que não dá para fazer isso:

JOptionPane.showMessageDialog(null,desk.toString());

Obrigado.

[quote=briansiervi]E como mostro o desk em um Jlabel ou em um JOptionPane???
Vi que não dá para fazer isso:

JOptionPane.showMessageDialog(null,desk.toString());

Obrigado.[/quote]

Como o luis.txt demonstrou você pode usar a biblioteca awt.Desktop para executar o site, lembre-se que para que o código funcione, você deverá adicionar-lo dentro do evento mouseCliked.

Demonstração:

Adicione o import para a biblioteca ‘java.awt.Desktop’

private void meuLabelMouseClicked(java.awt.event.MouseEvent evt) { Desktop desk = java.awt.Desktop.getDesktop(); try { desk.browse(new java.net.URI("http://www.seuwebsite.com")); } catch (Exception e) { e.printStackTrace(); } }

O resto como design do link, isso você pode fazer no próprio layout do jLabel. Caso queira algo mais trabalhado tente pesquisar por SwingX Library. :smiley:
[]'s

Vlw aee luis.txt
me ajudo pakas