Aplicar swing após codificar

Boa tarde.

Sou novo no mundo da programação e estou estudando a sintaxe de Java.

Criei uma calculadora IMC com classes e métodos, e gostaria de saber como faço para aplicar a parte de Swing nesses códigos.

Não sabia como pesquisar especificamente isso, espero que entendam.

Grato.

Você vai precisar criar uma janela, e para isso vc vai usar a classe JFrame. Você consegue apresentar uma janela vazia assim:

import javax.swing.JFrame;

public class Main2 {
	
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		frame.setSize(300, 300);
		frame.setLocationRelativeTo(null); // apenas para que a janela seja aberta centralizada 
		frame.setVisible(true);
	}
}

Quer uma dica bacana para fazer um código de responsa?

  • Crie uma classe que irá manter a lógica da sua calculadora (CalculadoraServico, por exemplo);
  • E crie uma outra classe soh para manter a parte visual CalculadoraUI (o JFrame no seu caso);
  • Quando for preciso invocar alguma coisa da calculadora, faça a chamada à classe de serviço, com isso, seu código ficará bem separado, fácil de evoluir e manter.
1 curtida

E você escreveu essa calculadora de forma a ser reutilizável?
Caso afirmativo, é só fazer sua telinha Swing, criar um objeto de sua calculadora e fazer o usuário manipular esse objeto através da janela.

O que seria reutilizável?

Se está aprendendo POO é importante pensar em escrever suas classes de forma a poder reutilizá-las.
Tem bastante material na internet falando sobre o assunto, por exemplo: https://www.devmedia.com.br/poo-reusabilidade-e-eficiencia-em-seu-codigo/31463

1 curtida

Pense assim:

public class UsuarioServico {
	public static final List<String> USUARIOS = new ArrayList<String>();
	
	public void cadastrar(String nomeUsuario) throws ValidacaoException {
		if(nomeUsuario == null) {
			throw new ValidacaoException("Nome do usuário não pode ser nulo.");
		}
		
		if(USUARIOS.contains(nomeUsuario)) {
			throw new ValidacaoException("Nome do usuário já está cadastrado.");
		}
		
		USUARIOS.add(nomeUsuario);
	}
	
	public boolean verificarSeCadastrado(String nomeUsuario) throws ValidacaoException {
		if(USUARIOS.contains(nomeUsuario)) {
			throw new ValidacaoException("Nome do usuário não pode ser nulo.");
		}
		
		return USUARIOS.contains(nomeUsuario);
	}
}

Repare que há alguns trechos de códigos repetidos nessa classe que montei de exemplo.

  • A validação do nome de usuário
  • A verificação se o nome do usuário já está cadastrada na lista

Repetir código não é bom, por isso, nós aplicamos conceitos de POO para melhorar esse tipo de coisa. Veja como ficaria um código sem essas repetições:

public class UsuarioServico {
	public static final List<String> USUARIOS = new ArrayList<String>();
	
	public void cadastrar(String nomeUsuario) throws ValidacaoException {
		if(verificarSeCadastrado(nomeUsuario)) {
			throw new ValidacaoException("Nome do usuário já está cadastrado.");
		}
		
		USUARIOS.add(nomeUsuario);
	}

	public boolean verificarSeCadastrado(String nomeUsuario) throws ValidacaoException {
		validar(nomeUsuario);
		return USUARIOS.contains(nomeUsuario);
	}
	
	private void validar(String nomeUsuario) throws ValidacaoException {
		if(nomeUsuario == null) {
			throw new ValidacaoException("Nome do usuário não pode ser nulo.");
		}
	}
}
1 curtida