Sou leigo com programação e estou usando o netbeans para programar.
Criei um programinha que ao apertar um botão ele abre um site com o navegador padrão, esta parte do código que abre o navegador, foi um terceiro que me passou, sinceramente não entendo ele XD
try {
java.awt.Desktop.getDesktop().browse(new URI(url1));
} catch (URISyntaxException | IOException ex) {
Logger.getLogger(Dowcon.class.getName()).log(Level.SEVERE, null, ex);
}
com ele, o programa abre um nova aba, como faço para abrir um segundo link usando a mesma aba
Vc ta programando pra Desktop ou Web? (sei que ta usando o java.awt… Mas fiquei confuso com vc falando em abas)
desktop, eu acho.
o netbeans cria um arquivo .jar que quando executo, ele abre o programa, eu insiro o link em um campo e guardo na string url1 que ao apertar o botão executa o codigo acima abrindo o navegador, só que cada vez que eu apertar o botão ele vai abrindo uma aba nova no navegador, tem como sempre usar a mesma aba ?
Ata, entendi agora.
usa isso:
public static boolean openWebpage(URI uri) {
Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
try {
desktop.browse(uri);
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
Pra chamar:
try {
openWebpage(new URI("http://www.google.com"));
} catch (URISyntaxException ex) {
Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);
}
1 curtida
sempre que eu aciono o botão ele continua criando uma nova aba.
Olha só, isso é o que o botão está fazendo:
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
Chave = jTextField1.getText(); // Pega o conteudo do campo de texto e coloca na memória
Chave1 = Chave.replace(" ", ""); // Retira os espaços
Chave = Chave1.replace(".", "");
Chave1 = Chave.replace("-", "");
Chave = Chave1.replace("/", "");
Chave1 = Chave;
url1 = part1 + Chave1 + part2; // Junta as memórias para formar um Link
url2 = part5 + Chave1 + part6; // Junta as memórias para formar um Link
if(Chave1.equals("")){ // Caso a memria esteja em branco, este não executa nada
this.dispose(); // Fecha a janela
} else {
try {
openWebpage(new URI(url1));
} catch (URISyntaxException ex) {
Logger.getLogger(Dowcon.class.getName()).log(Level.SEVERE, null, ex);
}
try {
openWebpage(new URI(url2));
} catch (URISyntaxException ex) {
Logger.getLogger(Dowcon.class.getName()).log(Level.SEVERE, null, ex);
}
this.dispose(); // Fecha a janela
}
Do jeito que está, ficou legal, o link que eu preciso abrir, é o segundo “url2”, mais normalmente ele buga e só abre se o primeiro “url1” estiver carregado, tem como fazer o programa esperar uns dois segundos e aí abrir o segundo ? tipo aperto o botão, abre o primeiro link, espera dois segundos, abre o segundo link?
Se tiver como usar a mesma aba seria legal também XD
Cara, eu já tentei isso de usar a mesma aba, mas não nunca achei uma solução, vc pode criar uma página em html e toda vez que vc clica no botão, ela é redirecionada pra tal lugar