É 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
É 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.
[]'s
Vlw aee luis.txt
me ajudo pakas