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