Giter VIP home page Giter VIP logo

steffanop / projeto-pacovan Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 1.0 15.57 MB

Um sistema capaz de registrar empréstimos, sem análise de riscos, ver a quantidade de parcelas restantes para quitação do ágio, amortização por Bens Especiais Não Solicitados (B.E.N.S.) e taxas de juros variáveis para cada usuário.

Java 100.00%
singleton facade-pattern introduction-to-java oriented-object-programming

projeto-pacovan's Introduction

👋 Hello There! I'm Steffano!

Hello There gif

Here you can find many projects that I work on, there's also a lot of informative stuff about my college and other projects from

🔭 I’m currently working to build a community at UFRPE-DEVS!

📓 I've also researched about Synthetic Dataset Generation for one of my Undergraduate Research at Federal Rural University in colaboration with AiBoxLab Research Group. Take a look at SteffanoP/cbdgen!

🌱 But lately I've been exploring and learning more about DevOps Culture and Continuous Integration/Continuous Delivery (CI/CD). For now, I've been learning about Cloud Providers, such as Amazon AWS Services and Microsoft Azure.

🧐 Nonetheless, I've been also looking to automate workflows and pipelines, exploring technologies such as GitHub Actions to manage GitHub Repositories, as well as, Hashicorp Terraform to provision cloud resources in the Cloud and Hashicorp Vault to keep secrets safe!

👯 I’m looking to collaborate on open-source projects! If I fit into your project somehow, please contact me!

💬 Ask me about {Git, Java, C, Arduino, Python, GitHub Actions, Terraform, Vault, AWS, Azure, [...]}

📫 You can reach me by sending me an email or if you prefer send me a note at in/SteffanoP

😄 Pronouns: He/him//ele/dele

⚡ Fun fact: I'm a huge fan of Star Wars and as you can see, I love Obi-Wan Kenobi! Such a great character that I hoped Disney could treat him better.


projeto-pacovan's People

Contributors

dnlbyte avatar fedrab avatar gerorsch avatar steffanop avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

fedrab

projeto-pacovan's Issues

Montar um tópico no Readme.md de setup de desenvolvimento do projeto

Seria interessante ter uma informação no README.md acerca de como fazer o setup de desenvolvimento do projeto, para caso alguém ache interessante trabalhar com o projeto ou apenas visualizar o código rodando no futuro, até porque esse repo fica de referência para outras pessoas.

Método `calcularValorBensCliente` não calcula todos os valores de Bens do Cliente

O método calcularValorBensCliente não calcula os valores de bens do cliente, e sim, só calcula o valor do último BENS que entra na Lista, observe a lógica (simplifiquei a função para condensar a Issue):

        double valor = 0; 
        List<Bens> valorBenList = repoBENS.listar();
        for(Bens ben: valorBenList) {
            if (ben.getCliente().getUid() == uidCliente){
                existevalor = true;
                valor = ben.getValor() ;
            }
        }
        return valor;

Observe que a variável valor sempre é setada para um novo valor, logo irá retornar o último valor de repoBens.listar().

Tratar as TableViews como um Map ao invés de uma List

Descrição

Nas atuais TableViews, todas são tratadas como uma Lista de Objetos, como na camada de negócio temos listagem por meio de Map, seria interessante ver as TableViews obedecendo a um Map, ao invés de um casting de Map para lista, como no exemplo:

https://github.com/SteffanoP/projetoIP2/blob/5bafaf9fab1995bb7282028c920e44509afd5cd9/src/gui/TelaBENSController.java#L41-L46

Observe que é criada uma List bensList como forma de conversão do método Fachada.getInstance().listarBensCliente(SessionManager.getInstance().getPessoaSessao().getUid()).

Referências

https://docs.oracle.com/javafx/2/ui_controls/table-view.htm

Exceção `PessoaInexistenteException` não faz sentido no método `listarPropostasCliente()`

Imagine o seguinte cenário, um Cliente é cadastro pela primeira vez no sistema e faz login, também, pela primeira vez; eventualmente não haverá nenhuma Proposta.

Atualmente o código que lista as propostas do Cliente reconhece que o Cliente não existe e joga a exceção PessoaInexistenteException, porém o Cliente existe só não há propostas atrelada a ele; veja o código:

    public Map<LocalDate, Proposta> listarPropostasCliente(long uidCliente) throws PessoaInexistenteException {
        NavigableMap<LocalDate, Proposta> mapaPropostas = new TreeMap<>();
        boolean clienteExiste = false;
        
        for (Proposta proposta : this.repoProposta.listar()) {
            if(proposta.getCliente().getUid() == uidCliente && !proposta.isContraproposta()){
                clienteExiste = true;
                //Preencher mapa
                mapaPropostas.put(proposta.getData(), proposta);
            }
        }
        
        if (!clienteExiste) {
            throw new PessoaInexistenteException("Cliente não existe!");
        }

        return mapaPropostas;
    }

Observe que o if (proposta.getCliente().getUid() == uidCliente && !proposta.isContraproposta()), nunca irá ser verdadeiro caso o cliente não tenha propostas, de tal forma que o cliente existe, porém sem propostas, logo sempre nessa condição a exceção será jogada no sistema.

Inicializar com o método `@FXML private void initialize()`

O problema

Atualmente os métodos de inicialização do código se baseiam na movimentação do mouse, contudo, todavia, essa não deve ser a forma ideal, visto que, se não mover o mouse a tela não irá inicializar, e também porque quaisquer tipos de inicializações devem acontecer no momento em que a tela é instanciada.

Possível Solução

Opa Pessoal, Boa Noite! Segue uma pequena dica para vocês que estão desenvolvendo telas e precisam de uma configuração inicial de uma tela antes de ela ser iniciada, ou seja, no momento de instanciação.

Eu conversei com o Prof. Leandro, a procura de uma solução e achei uma bem interessante, vejam:

Geralmente é interessante iniciar algumas informações quando você instancia uma tela no fxml, é o caso de quando você precisa configurar TableViews com métodos setCellFactory() e setCellValueFactory(). Para isso só é necessário configurar um método chamado initialize(), vejam o exemplo para uma TelaExemploController.java (Observem que a ideia da implementação é em um Controlador):

@FXML
private void initialize() {
     
}

é obrigatório conter a flag @FXML, dessa forma internamente será executado; a recomendação é usar o método como um private, seguindo aquela ideia de information hiding e também evita que essa classe seja executada novamente em outro local. Caso você precise usar como um método public, não há necessidade para a flag @FXML, porém não é recomendado.

Referências

https://stackoverflow.com/questions/51392203/what-does-initialize-mean-in-javafx

Corrigir as Tableviews de Empréstimo e Movimentação da Tela Principal do Cliente

Segundo o log de testes, os erros são os seguintes:

Clique aqui para ver o log
exceptions.PessoaInexistenteException: Cliente Não existe!
	at negocio.ControladorMovimentacao.listarMoveCliente(ControladorMovimentacao.java:31)
	at negocio.Fachada.listarMoveCliente(Fachada.java:135)
	at gui.TelaPrincipalClienteController.initialize(TelaPrincipalClienteController.java:63)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
	at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
	at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2591)
	at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2450)
	at gui.GerenciadorTelas.changeScreen(GerenciadorTelas.java:47)
	at gui.TelaLoginController.btnLoginPressed(TelaLoginController.java:30)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
	at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
	at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
	at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1782)
	at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1670)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8879)
	at javafx.controls/javafx.scene.control.Button.fire(Button.java:200)
	at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206)
	at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3851)
	at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1200(Scene.java:3579)
	at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1849)
	at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2588)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:397)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:434)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:390)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:433)
	at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
	at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	at java.base/java.lang.Thread.run(Thread.java:831)
jul. 04, 2021 11:39:10 PM javafx.scene.control.cell.PropertyValueFactory getCellDataReflectively
WARNING: Can not retrieve property 'instante' in PropertyValueFactory: javafx.scene.control.cell.PropertyValueFactory@693f9262 with provided class type: class gui.models.EmprestimoModelo
java.lang.IllegalStateException: Cannot read from unreadable property instante
	at javafx.base/com.sun.javafx.property.PropertyReference.get(PropertyReference.java:170)
	at javafx.controls/javafx.scene.control.cell.PropertyValueFactory.getCellDataReflectively(PropertyValueFactory.java:184)
	at javafx.controls/javafx.scene.control.cell.PropertyValueFactory.call(PropertyValueFactory.java:154)
	at javafx.controls/javafx.scene.control.cell.PropertyValueFactory.call(PropertyValueFactory.java:133)
	at javafx.controls/javafx.scene.control.TableColumn.getCellObservableValue(TableColumn.java:593)
	at javafx.controls/javafx.scene.control.TableColumn.getCellObservableValue(TableColumn.java:578)
	at javafx.controls/javafx.scene.control.TableCell.updateItem(TableCell.java:646)
	at javafx.controls/javafx.scene.control.TableCell.indexChanged(TableCell.java:469)
	at javafx.controls/javafx.scene.control.IndexedCell.updateIndex(IndexedCell.java:120)
	at javafx.controls/javafx.scene.control.skin.TableRowSkinBase.updateCells(TableRowSkinBase.java:539)
	at javafx.controls/javafx.scene.control.skin.TableRowSkinBase.<init>(TableRowSkinBase.java:159)
	at javafx.controls/javafx.scene.control.skin.TableRowSkin.<init>(TableRowSkin.java:89)
	at javafx.controls/javafx.scene.control.TableRow.createDefaultSkin(TableRow.java:213)
	at javafx.controls/javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.controls/javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.controls/javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at javafx.controls/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9529)
	at javafx.graphics/javafx.scene.Node.applyCss(Node.java:9616)
	at javafx.controls/javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1715)
	at javafx.controls/javafx.scene.control.skin.VirtualFlow.getCell(VirtualFlow.java:1692)
	at javafx.controls/javafx.scene.control.skin.VirtualFlow.getCellLength(VirtualFlow.java:1801)
	at javafx.controls/javafx.scene.control.skin.VirtualFlow.computeViewportOffset(VirtualFlow.java:2639)
	at javafx.controls/javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1245)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1204)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.graphics/javafx.scene.Scene.doLayoutPass(Scene.java:576)
	at javafx.graphics/javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2482)
	at javafx.graphics/com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
	at javafx.graphics/com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411)
	at javafx.graphics/com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:519)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	at java.base/java.lang.Thread.run(Thread.java:831)

jul. 04, 2021 11:39:10 PM javafx.scene.control.cell.PropertyValueFactory getCellDataReflectively
WARNING: Can not retrieve property 'tipoMovimentacao' in PropertyValueFactory: javafx.scene.control.cell.PropertyValueFactory@168eb885 with provided class type: class gui.models.EmprestimoModelo
java.lang.IllegalStateException: Cannot read from unreadable property tipoMovimentacao
	at javafx.base/com.sun.javafx.property.PropertyReference.get(PropertyReference.java:170)
	at javafx.controls/javafx.scene.control.cell.PropertyValueFactory.getCellDataReflectively(PropertyValueFactory.java:184)
	at javafx.controls/javafx.scene.control.cell.PropertyValueFactory.call(PropertyValueFactory.java:154)
	at javafx.controls/javafx.scene.control.cell.PropertyValueFactory.call(PropertyValueFactory.java:133)
	at javafx.controls/javafx.scene.control.TableColumn.getCellObservableValue(TableColumn.java:593)
	at javafx.controls/javafx.scene.control.TableColumn.getCellObservableValue(TableColumn.java:578)
	at javafx.controls/javafx.scene.control.TableCell.updateItem(TableCell.java:646)
	at javafx.controls/javafx.scene.control.TableCell.indexChanged(TableCell.java:469)
	at javafx.controls/javafx.scene.control.IndexedCell.updateIndex(IndexedCell.java:120)
	at javafx.controls/javafx.scene.control.skin.TableRowSkinBase.updateCells(TableRowSkinBase.java:539)
	at javafx.controls/javafx.scene.control.skin.TableRowSkinBase.<init>(TableRowSkinBase.java:159)
	at javafx.controls/javafx.scene.control.skin.TableRowSkin.<init>(TableRowSkin.java:89)
	at javafx.controls/javafx.scene.control.TableRow.createDefaultSkin(TableRow.java:213)
	at javafx.controls/javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.controls/javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.controls/javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at javafx.controls/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9529)
	at javafx.graphics/javafx.scene.Node.applyCss(Node.java:9616)
	at javafx.controls/javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1715)
	at javafx.controls/javafx.scene.control.skin.VirtualFlow.getCell(VirtualFlow.java:1692)
	at javafx.controls/javafx.scene.control.skin.VirtualFlow.getCellLength(VirtualFlow.java:1801)
	at javafx.controls/javafx.scene.control.skin.VirtualFlow.computeViewportOffset(VirtualFlow.java:2639)
	at javafx.controls/javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1245)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1204)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.graphics/javafx.scene.Scene.doLayoutPass(Scene.java:576)
	at javafx.graphics/javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2482)
	at javafx.graphics/com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
	at javafx.graphics/com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411)
	at javafx.graphics/com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:519)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	at java.base/java.lang.Thread.run(Thread.java:831)

Configurar a ação Remover BENS

Ação Remover BENS precisa ser configurada na Tela Bens para que o BENS selecionado possa ser apagado e retirado da lista de BENS.

Reestruturar o carregamento das telas

Descrição Rápida

Segundo o Professor Leandro, o atual formato das telas não está legal, primeiro porque a forma como é chamada as telas funciona da seguinte maneira:

https://github.com/SteffanoP/projetoIP2/blob/ebd59a50405af3533822fe1260d48254d5a5abaf/src/gui/GerenciadorTelas.java#L44-L60

O problema

Observe que isso não é um modelo ideal, pois está sempre carregando o Stream de uma tela, logo, toda vez que uma tela é chamada, esta é carregada do zero. Em um sistema ideal é mais vantajoso guardar a tela dentro de uma variável e sempre que a tela for utilizada chamar essa tela.

Uma possível solução

Quando iniciar o programa, carregar as telas em uma variável estática do tipo Parent e usar o Switch apenas para fazer o set da MainScene.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.