From 6d0e0a5612e999b465bd732895ed10623fba8d83 Mon Sep 17 00:00:00 2001 From: salgado2004 Date: Wed, 5 Jun 2024 22:55:10 -0300 Subject: [PATCH 1/5] feat: Atualizando design da tela Home --- src/main/br/ufpr/controllers/Imagens.java | 26 +++++++++++++++++++++++ src/main/br/ufpr/views/Home.form | 25 +++++++++++++++------- src/main/br/ufpr/views/Home.java | 7 ++++++ 3 files changed, 50 insertions(+), 8 deletions(-) diff --git a/src/main/br/ufpr/controllers/Imagens.java b/src/main/br/ufpr/controllers/Imagens.java index 9d23899..ef72f94 100644 --- a/src/main/br/ufpr/controllers/Imagens.java +++ b/src/main/br/ufpr/controllers/Imagens.java @@ -11,6 +11,7 @@ */ public enum Imagens { MAIN("icon.png"), + LOGO("logo.jpg"), EYE_OPEN("eye_open.png"), EYE_CLOSED("eye_closed.png"), SEARCH("search.png"), @@ -19,6 +20,9 @@ public enum Imagens { SAQUE("saque.png"), REMUNERA("remunera.png"), INVESTIMENTO("investir.png"), + CONTAS("contas.png"), + CLIENTES("clientes.png"), + TRANSACTIONS("transactions.png"), ERRO("error.png"), WARNING("warning.png"), SUCCESS("sucess.png"), @@ -55,6 +59,28 @@ public ImageIcon icon() { } } + /** + * Retorna um ImageIcon a partir do caminho da imagem especificado. + * + * Este método tenta carregar a imagem do diretório /assets usando o caminho especificado. + * Se a imagem for carregada com sucesso, um novo ImageIcon é criado com as dimensões especificadas e retornado. + * Se ocorrer um erro durante o carregamento da imagem, uma mensagem de erro é impressa no console e o método retorna null. + * + * @param width A largura da imagem. + * @param height A altura da imagem. + * @return ImageIcon se a imagem for carregada com sucesso, null caso contrário. + */ + public ImageIcon icon(int width, int height) { + try{ + InputStream is = getClass().getResourceAsStream("/assets/"+path); + Image image = ImageIO.read(is); + return new ImageIcon(image.getScaledInstance(width, height, Image.SCALE_SMOOTH)); + } catch (IOException e) { + System.out.println("Erro ao carregar icone "+ path); + return null; + } + } + /** * Retorna uma Image a partir do caminho da imagem especificado. * diff --git a/src/main/br/ufpr/views/Home.form b/src/main/br/ufpr/views/Home.form index b5f4b40..e5f2903 100644 --- a/src/main/br/ufpr/views/Home.form +++ b/src/main/br/ufpr/views/Home.form @@ -5,14 +5,20 @@ - - + + + + + + + + @@ -21,6 +27,7 @@ + @@ -29,23 +36,25 @@ + - + - + - + + - + - + - + diff --git a/src/main/br/ufpr/views/Home.java b/src/main/br/ufpr/views/Home.java index 1131b6e..ed27144 100644 --- a/src/main/br/ufpr/views/Home.java +++ b/src/main/br/ufpr/views/Home.java @@ -1,5 +1,6 @@ package main.br.ufpr.views; +import main.br.ufpr.controllers.Imagens; import main.br.ufpr.controllers.Sistema; import main.br.ufpr.models.Tela; @@ -12,8 +13,14 @@ public class Home implements Tela { private JButton clientesButton; private JButton contasButton; private JButton transactionsButton; + private JLabel logo; public Home() { + logo.setIcon(Imagens.LOGO.icon(300, 300)); + contasButton.setIcon(Imagens.CONTAS.icon()); + clientesButton.setIcon(Imagens.CLIENTES.icon()); + transactionsButton.setIcon(Imagens.TRANSACTIONS.icon()); + clientesButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { From 9a929222af2e9ea00532dd34a70e067c46c5dc41 Mon Sep 17 00:00:00 2001 From: Pedro Souza Date: Tue, 11 Jun 2024 19:59:30 -0300 Subject: [PATCH 2/5] design-manter-cliente --- src/main/br/ufpr/views/ManterCliente.form | 59 ++++++++++++++++++----- src/main/br/ufpr/views/ManterCliente.java | 3 ++ 2 files changed, 51 insertions(+), 11 deletions(-) diff --git a/src/main/br/ufpr/views/ManterCliente.form b/src/main/br/ufpr/views/ManterCliente.form index d5762fc..5091a0e 100644 --- a/src/main/br/ufpr/views/ManterCliente.form +++ b/src/main/br/ufpr/views/ManterCliente.form @@ -5,7 +5,11 @@ - + + + + + @@ -13,6 +17,7 @@ + @@ -21,6 +26,7 @@ + @@ -30,7 +36,9 @@ - + + + @@ -38,14 +46,20 @@ - + + + - + + + + + @@ -55,6 +69,7 @@ + @@ -64,7 +79,9 @@ - + + + @@ -73,6 +90,7 @@ + @@ -81,6 +99,7 @@ + @@ -90,13 +109,16 @@ - + + + + @@ -106,7 +128,9 @@ - + + + @@ -114,7 +138,9 @@ - + + + @@ -123,6 +149,7 @@ + @@ -132,13 +159,16 @@ - + + + + @@ -148,7 +178,9 @@ - + + + @@ -162,13 +194,18 @@ - + + + + + + diff --git a/src/main/br/ufpr/views/ManterCliente.java b/src/main/br/ufpr/views/ManterCliente.java index cc74ebc..32e8513 100644 --- a/src/main/br/ufpr/views/ManterCliente.java +++ b/src/main/br/ufpr/views/ManterCliente.java @@ -289,4 +289,7 @@ public JPanel getFrame() { return frame; } + private void createUIComponents() { + // TODO: place custom component creation code here + } } From 48167c8db7b401177569f6401b37859732b7f9eb Mon Sep 17 00:00:00 2001 From: Pedro Souza Date: Tue, 11 Jun 2024 20:15:13 -0300 Subject: [PATCH 3/5] design-manter-cliente-correcao --- src/main/br/ufpr/views/ManterCliente.form | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/br/ufpr/views/ManterCliente.form b/src/main/br/ufpr/views/ManterCliente.form index 5091a0e..91ac601 100644 --- a/src/main/br/ufpr/views/ManterCliente.form +++ b/src/main/br/ufpr/views/ManterCliente.form @@ -37,7 +37,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -110,7 +110,7 @@ - + @@ -129,7 +129,7 @@ - + @@ -139,7 +139,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -179,7 +179,7 @@ - + From 9c52bf8be66db1eadd44d2c2b1a6485f63b4cff8 Mon Sep 17 00:00:00 2001 From: salgado2004 Date: Tue, 11 Jun 2024 22:03:39 -0300 Subject: [PATCH 4/5] feat: update design - cores - bordas --- src/main/br/ufpr/views/ManipularConta.form | 55 +++++++++++++++++---- src/main/br/ufpr/views/ManterCliente.form | 33 +++++++++++-- src/main/br/ufpr/views/VincularCliente.form | 42 +++++++++++++--- 3 files changed, 108 insertions(+), 22 deletions(-) diff --git a/src/main/br/ufpr/views/ManipularConta.form b/src/main/br/ufpr/views/ManipularConta.form index fe8a156..c175b38 100644 --- a/src/main/br/ufpr/views/ManipularConta.form +++ b/src/main/br/ufpr/views/ManipularConta.form @@ -5,14 +5,20 @@ - - + + + + + + + + @@ -22,13 +28,16 @@ - + + + + @@ -37,6 +46,7 @@ + @@ -46,6 +56,7 @@ + @@ -57,6 +68,7 @@ + @@ -69,7 +81,7 @@ - + @@ -82,6 +94,7 @@ + @@ -98,6 +111,7 @@ + @@ -108,7 +122,9 @@ - + + + @@ -116,7 +132,9 @@ - + + + @@ -124,6 +142,7 @@ + @@ -138,7 +157,9 @@ - + + + @@ -150,6 +171,7 @@ + @@ -160,7 +182,9 @@ - + + + @@ -168,6 +192,7 @@ + @@ -182,7 +207,9 @@ - + + + @@ -194,6 +221,7 @@ + @@ -204,7 +232,9 @@ - + + + @@ -212,6 +242,8 @@ + + @@ -225,6 +257,7 @@ + @@ -233,6 +266,7 @@ + @@ -273,6 +307,7 @@ + diff --git a/src/main/br/ufpr/views/ManterCliente.form b/src/main/br/ufpr/views/ManterCliente.form index 91ac601..8af4184 100644 --- a/src/main/br/ufpr/views/ManterCliente.form +++ b/src/main/br/ufpr/views/ManterCliente.form @@ -10,7 +10,10 @@ - + + + + @@ -37,6 +40,7 @@ + @@ -47,6 +51,7 @@ + @@ -60,7 +65,11 @@ - + + + + + @@ -80,6 +89,7 @@ + @@ -110,6 +120,7 @@ + @@ -129,6 +140,7 @@ + @@ -139,6 +151,7 @@ + @@ -160,6 +173,7 @@ + @@ -179,6 +193,7 @@ + @@ -187,10 +202,11 @@ + - + @@ -198,12 +214,17 @@ - + + + + + + @@ -219,6 +240,7 @@ + @@ -227,6 +249,7 @@ + @@ -235,6 +258,7 @@ + @@ -243,6 +267,7 @@ + diff --git a/src/main/br/ufpr/views/VincularCliente.form b/src/main/br/ufpr/views/VincularCliente.form index c5501ff..1086041 100644 --- a/src/main/br/ufpr/views/VincularCliente.form +++ b/src/main/br/ufpr/views/VincularCliente.form @@ -5,14 +5,21 @@ - - + + + + + + + + + @@ -23,6 +30,7 @@ + @@ -32,18 +40,23 @@ - + - + + + - + + + + @@ -55,9 +68,10 @@ + - + @@ -66,6 +80,7 @@ + @@ -74,6 +89,7 @@ + @@ -82,6 +98,7 @@ + @@ -90,6 +107,7 @@ + @@ -99,6 +117,7 @@ + @@ -108,6 +127,7 @@ + @@ -118,6 +138,7 @@ + @@ -127,7 +148,9 @@ - + + + @@ -135,7 +158,9 @@ - + + + @@ -144,6 +169,7 @@ + From fee43d78030e3c7cb0e5e73cc13f452274b1f18c Mon Sep 17 00:00:00 2001 From: salgado2004 Date: Tue, 11 Jun 2024 23:21:42 -0300 Subject: [PATCH 5/5] feat: update design system --- src/main/br/ufpr/controllers/Imagens.java | 2 + src/main/br/ufpr/controllers/Sistema.java | 6 +- src/main/br/ufpr/models/Cliente.java | 79 ++++++++++++++++++++- src/main/br/ufpr/models/Conta.java | 12 +++- src/main/br/ufpr/models/ContaCorrente.java | 12 +++- src/main/br/ufpr/models/Endereco.java | 16 ++++- src/main/br/ufpr/views/ManterCliente.form | 15 +++- src/main/br/ufpr/views/ManterCliente.java | 12 ++++ src/main/br/ufpr/views/VincularCliente.java | 4 ++ 9 files changed, 147 insertions(+), 11 deletions(-) diff --git a/src/main/br/ufpr/controllers/Imagens.java b/src/main/br/ufpr/controllers/Imagens.java index ef72f94..0bb4145 100644 --- a/src/main/br/ufpr/controllers/Imagens.java +++ b/src/main/br/ufpr/controllers/Imagens.java @@ -16,6 +16,8 @@ public enum Imagens { EYE_CLOSED("eye_closed.png"), SEARCH("search.png"), DELETE("delete.png"), + EDIT("edit.png"), + ADD("add.png"), DEPOSITO("deposito.png"), SAQUE("saque.png"), REMUNERA("remunera.png"), diff --git a/src/main/br/ufpr/controllers/Sistema.java b/src/main/br/ufpr/controllers/Sistema.java index 1b6e248..f4e7b29 100644 --- a/src/main/br/ufpr/controllers/Sistema.java +++ b/src/main/br/ufpr/controllers/Sistema.java @@ -103,15 +103,15 @@ public static void main(String[] args){ frame.setVisible(true); Endereco endereco1 = new Endereco("Rua A", "Prado Velho", "250", "Curitiba"); - Cliente c1 = new Cliente("Pedro", "Souza", endereco1, "09124024902", "129711280"); + Cliente c1 = new Cliente("Pedro", "Souza", endereco1, "948.312.270-80", "129711280"); cadastrarCliente(c1); Endereco endereco2 = new Endereco("Rua B", "Cajuru", "1134", "Curitiba"); - Cliente c2 = new Cliente("Alisson", "Santos", endereco2, "11754317960", "119264210"); + Cliente c2 = new Cliente("Alisson", "Santos", endereco2, "885.434.710-87", "119264210"); cadastrarCliente(c2); Endereco endereco3 = new Endereco("Rua C", "Jardim Amélia", "65", "Pinhais"); - Cliente c3 = new Cliente("Leonardo", "Salgado", endereco3, "10619416980", "129321481"); + Cliente c3 = new Cliente("Leonardo", "Salgado", endereco3, "632.872.080-71", "129321481"); cadastrarCliente(c3); } diff --git a/src/main/br/ufpr/models/Cliente.java b/src/main/br/ufpr/models/Cliente.java index 4c8774b..9aed550 100644 --- a/src/main/br/ufpr/models/Cliente.java +++ b/src/main/br/ufpr/models/Cliente.java @@ -36,7 +36,59 @@ public Cliente(String nome, String sobrenome, Endereco endereco, String cpf, Str this.cpf = cpf; } - // Os getters e setters para as variáveis de instância estão aqui. + public String getNome() { + return nome; + } + + public void setNome(String nome) { + nome = nome.toUpperCase(); + + if (!validaNome(nome)) { + throw new IllegalArgumentException("Nome inválido"); + } + this.nome = nome; + } + + public String getSobrenome() { + return sobrenome; + } + + public void setSobrenome(String sobrenome) { + sobrenome = sobrenome.toUpperCase(); + if (!validaNome(sobrenome)) { + throw new IllegalArgumentException("Sobrenome inválido"); + } + this.sobrenome = sobrenome; + } + + + public Endereco getEndereco() { + return endereco; + } + + public void setEndereco(Endereco endereco) { + this.endereco = endereco; + } + + public String getCpf() { + return cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public Conta getConta() { + return conta; + } + + public void setConta(Conta conta) { + this.conta = conta; + } /** * Este método valida o nome do cliente. @@ -62,7 +114,30 @@ private boolean validaCpf(String cpf) { int soma = 0, resto = 0; if(cpf.matches("[0-9]{11}") && !cpf.matches("^(\\d)\\1{10}")){ - // A lógica de validação do CPF está aqui. + for (int i = 0; i < 9; i++) { + soma += Integer.parseInt(cpf.substring(i, i + 1)) * (10 - i); + } + resto = 11 - (soma % 11); + if (resto == 10 || resto == 11) { + resto = 0; + } + if (resto != Integer.parseInt(cpf.substring(9, 10))) { + return false; + } + + soma = 0; + for (int i = 0; i < 10; i++) { + soma += Integer.parseInt(cpf.substring(i, i + 1)) * (11 - i); + } + resto = 11 - (soma % 11); + if (resto == 10 || resto == 11) { + resto = 0; + } + if (resto != Integer.parseInt(cpf.substring(10, 11))) { + return false; + } + + return true; } return false; } diff --git a/src/main/br/ufpr/models/Conta.java b/src/main/br/ufpr/models/Conta.java index 9d585dc..e708d65 100644 --- a/src/main/br/ufpr/models/Conta.java +++ b/src/main/br/ufpr/models/Conta.java @@ -69,7 +69,17 @@ public boolean saca(double valor) { return false; } - // Os getters para as variáveis de instância estão aqui. + public Cliente getDono() { + return this.dono; + } + + public int getNumero() { + return this.numero; + } + + public double getSaldo() { + return this.saldo; + } /** * Este é um método abstrato que deve ser implementado nas subclasses. diff --git a/src/main/br/ufpr/models/ContaCorrente.java b/src/main/br/ufpr/models/ContaCorrente.java index 12031f2..36ded05 100644 --- a/src/main/br/ufpr/models/ContaCorrente.java +++ b/src/main/br/ufpr/models/ContaCorrente.java @@ -38,7 +38,17 @@ public ContaCorrente(Cliente dono, double saldo, double limite) { this.limite = limite; } - // Os getters e setters para as variáveis de instância estão aqui. + public double getLimite() { + return this.limite; + } + + public void setLimite(double limite) { + this.limite = limite; + } + + public double getDepositoInicial() { + return this.depositoInicial; + } /** * Este método saca um valor da conta. diff --git a/src/main/br/ufpr/models/Endereco.java b/src/main/br/ufpr/models/Endereco.java index 475d58a..6633ff3 100644 --- a/src/main/br/ufpr/models/Endereco.java +++ b/src/main/br/ufpr/models/Endereco.java @@ -29,7 +29,21 @@ public Endereco(String logradouro, String bairro, String numeroS, String cidade) this.cidade = cidade.toUpperCase(); } - // Os getters para as variáveis de instância estão aqui. + public String getLogradouro() { + return logradouro; + } + + public String getBairro() { + return bairro; + } + + public int getNumero() { + return numero; + } + + public String getCidade() { + return cidade; + } /** * Este método privado verifica se o número é válido. diff --git a/src/main/br/ufpr/views/ManterCliente.form b/src/main/br/ufpr/views/ManterCliente.form index 8af4184..61deddc 100644 --- a/src/main/br/ufpr/views/ManterCliente.form +++ b/src/main/br/ufpr/views/ManterCliente.form @@ -1,6 +1,6 @@
- + @@ -208,7 +208,7 @@ - + @@ -246,7 +246,7 @@ - + @@ -271,6 +271,15 @@ + + + + + + + + + diff --git a/src/main/br/ufpr/views/ManterCliente.java b/src/main/br/ufpr/views/ManterCliente.java index 55bb0f6..4df6e94 100644 --- a/src/main/br/ufpr/views/ManterCliente.java +++ b/src/main/br/ufpr/views/ManterCliente.java @@ -1,5 +1,6 @@ package main.br.ufpr.views; +import main.br.ufpr.controllers.Imagens; import main.br.ufpr.controllers.Mensagens; import main.br.ufpr.controllers.Sistema; import main.br.ufpr.models.Cliente; @@ -7,6 +8,7 @@ import main.br.ufpr.models.Tela; import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** @@ -29,6 +31,7 @@ public class ManterCliente implements Tela { private JButton inserirButton; private JButton editarButton; private JButton excluirButton; + private JScrollPane scrollPanel; private ManterClienteTableModel tabelaModel = new ManterClienteTableModel(Sistema.getClientes()); @@ -39,6 +42,15 @@ public class ManterCliente implements Tela { public ManterCliente() { tabelaClientes.setModel(tabelaModel); tabelaClientes.setColumnModel(tabelaClientes.getColumnModel()); + + excluirButton.setIcon(Imagens.DELETE.icon()); + editarButton.setIcon(Imagens.EDIT.icon()); + buscarButton.setIcon(Imagens.SEARCH.icon()); + inserirButton.setIcon(Imagens.ADD.icon()); + + scrollPanel.getViewport().setBackground(new Color(5,28,59)); + tabelaClientes.getTableHeader().setBackground(new Color(225,248,255)); + voltarButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { diff --git a/src/main/br/ufpr/views/VincularCliente.java b/src/main/br/ufpr/views/VincularCliente.java index 4df7579..d54c2b6 100644 --- a/src/main/br/ufpr/views/VincularCliente.java +++ b/src/main/br/ufpr/views/VincularCliente.java @@ -9,6 +9,7 @@ import main.br.ufpr.models.Tela; import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Objects; @@ -36,6 +37,7 @@ public class VincularCliente implements Tela { private Cliente clienteSelecionado; private ContaCorrente corrente; private ContaInvestimento investimento; + private JScrollPane scrollPanel; /** * Construtor da classe VincularCliente. * Inicializa os componentes da interface e define os listeners dos botões. @@ -47,6 +49,8 @@ public VincularCliente() { tabela.setModel(tabelaModel); tabela.setColumnModel(tabela.getColumnModel()); + scrollPanel.getViewport().setBackground(new Color(5,28,59)); + tabela.getTableHeader().setBackground(new Color(225,248,255)); voltarButton.addActionListener(new ActionListener() { @Override