Trocando imagem usando Try Catch

8 respostas
A

Olá gente, gostaria de saber de isso tem solução, até porque, já cacei por ai e nada até então.

Bom, estou usando o método try catch para fazer a conexão com o banco, e esta indo muito bem, porém…eu queria saber se, ao fazer a tentativa de conexão, existisse a possibilidade de, no momento da tentativa (seja ela bem ou mal sucedida), ao invés de uma resposta falando o erro, mudasse dentro de jlabel, uma imagem, onde mostrasse se existe ou não conexão com o banco. Tentei de inúmeras formas e nada até agora.

Ex: se a conexão for bem sucedida, o jlabel assume uma imagem, senão, o mesmo jlabel, assume outra imagem.

Se alguém tiver a resposta disso, irei agradecer de verdade, pois procuro isso desde julho do ano passado.

Só um detalhe…o tal jlabel esta na tela principal, no jframe principal.

8 Respostas

Lucas_Camara

De acordo com a estrutura de um try/catch:

try {
	// tente fazer isso
	// sucesso: altere o label para uma imagem de sucesso
} catch(Exception ex) {
	// se der erro, faça isso
	// falha: altere o label para uma imagem de falha
} finally { // opcional
	// faça algo, mesmo tendo sucesso ou falha 
}
A

Entendi, é assim que o meu try catch está, porém, não sei como fazer ele também trocar a imagem de um jlabel, é isso que eu quero…o try está funcionando.

javaflex

Isso independe do try catch. Se você sabe trocar uma imagem em outra condicao, basta fazer o mesmo no catch como @Lucas_Camara te explicou. Senao sua duvida nao é sobre try catch, seja mais claro.

A

Bom, tentarei ser mais claro…

Esta é a minha classe de conexão, onde esta funcionando perfeitamente, a conexão é feita sem problemas.

public class Conexao {
	public Statement stm;
	public ResultSet rs;
	
	private final String driver = "com.mysql.jdbc.Driver";
	private final String caminho = "jdbc:mysql://127.0.0.1:****/******";
	private final String usuario = "******";
	private final String senha = "*********************";
	public Connection conn;
	
	public void link() {
		try {
			System.setProperty("jdbc.Driver", driver);
			conn = DriverManager.getConnection(caminho, usuario, senha);
			JOptionPane.showMessageDialog(null, "conexão bem sucedida !");
		} catch (SQLException ex) {
			JOptionPane.showMessageDialog(null, "Falha na conexão !");
			Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
		}
	}
}

Esta é a parte da classe principal (jframe) onde o tal jlabel se encontra.

public class Principal extends javax.swing.JFrame {
	Conexao conn = new Conexao();
	
	public Principal() {
		initComponents();
		conn.link();// construçao da conexão com o banco
	}

O que eu quero é que assim que ela for feita (ou não) a conexão, ela faça um jlabel que esta na classe principal, mudar de imagem.

o que eu não sei, é como fazer para chamar esta imagem e onde que devo colocar este código, se é dentro do try ou na classe…

espero que assim, dê para entender agora.

Lucas_Camara

Uma forma simples:

Faça o método link retornar um boolean. Caso retorne true, significa que a conexão deu certo, caso contrário, que falhou. E mude seu código para:

public Principal() {
	initComponents();
	boolean flag = conn.link();// construçao da conexão com o banco
	
	if(flag) {
		suaJLabel.setText("Status ON"); // conexão estabelecida com sucesso!
	} else {
		suaJLabel.setText("Status OFF"); // falha ao conectar
	}
}
A

Talvez isso ajude, mas eu quero que ela mostre uma imagem e não um texto, tem como?

Lucas_Camara

Pesquise o método setIcon da classe JLabel.

A

Muito obrigado gente pela força de vocês, de verdade, deu super certo aqui, mudei um lance aqui, mas esta funcionando. Irá aparecer outros impasses ai pela frente, mas por hora, tenho apenas que agradecer pelo apoio de todos. Valeu.

Se alguém ai quiser saber como foi feito, é só pedir ai.

Criado 18 de fevereiro de 2018
Ultima resposta 18 de fev. de 2018
Respostas 8
Participantes 3