Jonathan_Medeiros 4 de jan. de 2019 1 like
De que forma você está tentando acessar esse atributo para que o erro seja acusado?
greynowver 4 de jan. de 2019
Quando eu inicio a aplicação, tento cadastrar uma nova conta, ele dá o erro de que não existe um atributo do tipo “Conta”.
Jonathan_Medeiros 4 de jan. de 2019
Entendi, posta o código completo da sua classe ManipuladorDeConta.
greynowver 4 de jan. de 2019
package br.com.caelum.contas;
import br.com.caelum.contas.modelo.Conta ;
import br.com.caelum.contas.modelo.ContaCorrente ;
import br.com.caelum.contas.modelo.ContaPoupanca ;
import br.com.caelum.javafx.api.util.Evento ;
public class ManipuladorDeConta {
private Conta conta ;
public void criaConta ( Evento evento ) {
String tipo = evento . getSelecionadoNoRadio ( "tipo" );
if ( tipo . equals ( "Conta Corrente" )) {
this . conta = new ContaCorrente ();
} else if ( tipo . equals ( "Conta Poupança" )) {
this . conta = new ContaPoupanca ();
}
this . conta . setAgencia ( evento . getString ( "agencia" ));
this . conta . setNumero ( evento . getInt ( "numero" ));
this . conta . setTitular ( evento . getString ( "titular" ));
}
public void deposita ( Evento evento ) {
double valorDigitado = evento . getDouble ( "valorOperacao" );
this . conta . deposita ( valorDigitado );
}
public void saca ( Evento evento ) {
double valor = evento . getDouble ( "valorOperacao" );
this . conta . saca ( valor );
}
public void transfere ( Evento evento ) {
Conta destino = ( Conta ) evento . getSelecionadoNoCombo ( "destino" );
conta . transfere ( evento . getDouble ( "valorTransferencia" ), destino );
}
}
Jonathan_Medeiros 4 de jan. de 2019
Em qual classe ou parte do código fica a mensagem “deu pau ‘-’ ” ?
Pois essa sua classe não lança nenhuma exception!
Villagram 4 de jan. de 2019
Eu acredito que seu problema está nessa parte do código:
String tipo = evento . getSelecionadoNoRadio ( "tipo" );
if ( tipo . equals ( "Conta Corrente" )) {
this . conta = new ContaCorrente ();
} else if ( tipo . equals ( "Conta Poupança" )) {
this . conta = new ContaPoupanca ();
}
Crie uma conta corrente de forma direta sem fazer nenhuma verificação para fazer o teste e faça um debug deve método getSelecionadoNoRadio para ver o que ele está retornando na verdade.
greynowver 4 de jan. de 2019
Acredito que neste .jar que eu importei. Pois é nele que está escrito a parte gráfica do programa usado na apostila https://github.com/fabiomsnet/fj11-contas/blob/master/lib/fj11-lib-contas.jar
Jonathan_Medeiros 4 de jan. de 2019
Entendi, sua classe me parece estar de acordo com a da apostila, com um único detalhe, a sua tem alguns espaços a mais na comparação do tipo de conta.
Faz o seguinge, remova os espaços que estão sobrando nas comparações do tipo da conta e testa.
String tipo = evento . getSelecionadoNoRadio ( "tipo" );
if ( tipo . equals ( "Conta Corrente" )) {
this . conta = new ContaCorrente ();
} else if ( tipo . equals ( "Conta Poupança" )) {
this . conta = new ContaPoupanca ();
}
Suas classes ContaCorrente e ContaPoupanca estão estendenco a classe Conta corretamente?
greynowver 4 de jan. de 2019
Não resolveu, na console retorna esse erro ;
Exception in thread “ JavaFX Application Thread ” java . lang . RuntimeException : java . lang . reflect . InvocationTargetException
at javafx . fxml . FXMLLoader $ MethodHandler . invoke ( FXMLLoader . java : 1774 )
at javafx . fxml . FXMLLoader $ ControllerMethodEventHandler . handle ( FXMLLoader . java : 1657 )
at com . sun . javafx . event . CompositeEventHandler . dispatchBubblingEvent ( CompositeEventHandler . java : 86 )
at com . sun . javafx . event . EventHandlerManager . dispatchBubblingEvent ( EventHandlerManager . java : 238 )
at com . sun . javafx . event . EventHandlerManager . dispatchBubblingEvent ( EventHandlerManager . java : 191 )
at com . sun . javafx . event . CompositeEventDispatcher . dispatchBubblingEvent ( CompositeEventDispatcher . java : 59 )
at com . sun . javafx . event . BasicEventDispatcher . dispatchEvent ( BasicEventDispatcher . java : 58 )
at com . sun . javafx . event . EventDispatchChainImpl . dispatchEvent ( EventDispatchChainImpl . java : 114 )
at com . sun . javafx . event . BasicEventDispatcher . dispatchEvent ( BasicEventDispatcher . java : 56 )
at com . sun . javafx . event . EventDispatchChainImpl . dispatchEvent ( EventDispatchChainImpl . java : 114 )
at com . sun . javafx . event . BasicEventDispatcher . dispatchEvent ( BasicEventDispatcher . java : 56 )
at com . sun . javafx . event . EventDispatchChainImpl . dispatchEvent ( EventDispatchChainImpl . java : 114 )
at com . sun . javafx . event . BasicEventDispatcher . dispatchEvent ( BasicEventDispatcher . java : 56 )
at com . sun . javafx . event . EventDispatchChainImpl . dispatchEvent ( EventDispatchChainImpl . java : 114 )
at com . sun . javafx . event . EventUtil . fireEventImpl ( EventUtil . java : 74 )
at com . sun . javafx . event . EventUtil . fireEvent ( EventUtil . java : 49 )
at javafx . event . Event . fireEvent ( Event . java : 198 )
at javafx . scene . Node . fireEvent ( Node . java : 8411 )
at javafx . scene . control . Button . fire ( Button . java : 185 )
at com . sun . javafx . scene . control . behavior . ButtonBehavior . mouseReleased ( ButtonBehavior . java : 182 )
at com . sun . javafx . scene . control . skin . BehaviorSkinBase $ 1 . handle ( BehaviorSkinBase . java : 96 )
at com . sun . javafx . scene . control . skin . BehaviorSkinBase $ 1 . handle ( BehaviorSkinBase . java : 89 )
at com . sun . javafx . event . CompositeEventHandler $ NormalEventHandlerRecord . handleBubblingEvent ( CompositeEventHandler . java : 218 )
at com . sun . javafx . event . CompositeEventHandler . dispatchBubblingEvent ( CompositeEventHandler . java : 80 )
at com . sun . javafx . event . EventHandlerManager . dispatchBubblingEvent ( EventHandlerManager . java : 238 )
at com . sun . javafx . event . EventHandlerManager . dispatchBubblingEvent ( EventHandlerManager . java : 191 )
at com . sun . javafx . event . CompositeEventDispatcher . dispatchBubblingEvent ( CompositeEventDispatcher . java : 59 )
at com . sun . javafx . event . BasicEventDispatcher . dispatchEvent ( BasicEventDispatcher . java : 58 )
at com . sun . javafx . event . EventDispatchChainImpl . dispatchEvent ( EventDispatchChainImpl . java : 114 )
at com . sun . javafx . event . BasicEventDispatcher . dispatchEvent ( BasicEventDispatcher . java : 56 )
at com . sun . javafx . event . EventDispatchChainImpl . dispatchEvent ( EventDispatchChainImpl . java : 114 )
at com . sun . javafx . event . BasicEventDispatcher . dispatchEvent ( BasicEventDispatcher . java : 56 )
at com . sun . javafx . event . EventDispatchChainImpl . dispatchEvent ( EventDispatchChainImpl . java : 114 )
at com . sun . javafx . event . BasicEventDispatcher . dispatchEvent ( BasicEventDispatcher . java : 56 )
at com . sun . javafx . event . EventDispatchChainImpl . dispatchEvent ( EventDispatchChainImpl . java : 114 )
at com . sun . javafx . event . EventUtil . fireEventImpl ( EventUtil . java : 74 )
at com . sun . javafx . event . EventUtil . fireEvent ( EventUtil . java : 54 )
at javafx . event . Event . fireEvent ( Event . java : 198 )
at javafx . scene . Scene $ MouseHandler . process ( Scene . java : 3757 )
at javafx . scene . Scene $ MouseHandler . access $ 1500 ( Scene . java : 3485 )
at javafx . scene . Scene . impl_processMouseEvent ( Scene . java : 1762 )
at javafx . scene . Scene $ ScenePeerListener . mouseEvent ( Scene . java : 2494 )
at com . sun . javafx . tk . quantum . GlassViewEventHandler $ MouseEventNotification . run ( GlassViewEventHandler . java : 394 )
at com . sun . javafx . tk . quantum . GlassViewEventHandler $ MouseEventNotification . run ( GlassViewEventHandler . java : 295 )
at java . security . AccessController . doPrivileged ( Native Method )
at com . sun . javafx . tk . quantum . GlassViewEventHandler . lambda $ handleMouseEvent $ 353 ( GlassViewEventHandler . java : 432 )
at com . sun . javafx . tk . quantum . QuantumToolkit . runWithoutRenderLock ( QuantumToolkit . java : 389 )
at com . sun . javafx . tk . quantum . GlassViewEventHandler . handleMouseEvent ( GlassViewEventHandler . java : 431 )
at com . sun . glass . ui . View . handleMouseEvent ( View . java : 555 )
at com . sun . glass . ui . View . notifyMouse ( View . java : 937 )
at com . sun . glass . ui . win . WinApplication . _runLoop ( Native Method )
at com . sun . glass . ui . win . WinApplication . lambda $ null $ 147 ( WinApplication . java : 177 )
at java . lang . Thread . run ( Unknown Source )
Caused by : java . lang . reflect . InvocationTargetException
at sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method )
at sun . reflect . NativeMethodAccessorImpl . invoke ( Unknown Source )
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( Unknown Source )
at java . lang . reflect . Method . invoke ( Unknown Source )
at sun . reflect . misc . Trampoline . invoke ( Unknown Source )
at sun . reflect . GeneratedMethodAccessor1 . invoke ( Unknown Source )
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( Unknown Source )
at java . lang . reflect . Method . invoke ( Unknown Source )
at sun . reflect . misc . MethodUtil . invoke ( Unknown Source )
at javafx . fxml . FXMLLoader $ MethodHandler . invoke ( FXMLLoader . java : 1769 )
… 52 more
Caused by : java . lang . RuntimeException : Não foi possível encontrar a conta .
at br . com . caelum . javafx . api . controllers . NovaContaController . buscaConta ( NovaContaController . java : 74 )
at br . com . caelum . javafx . api . controllers . NovaContaController . criaConta ( NovaContaController . java : 41 )
… 62 more
Jonathan_Medeiros 4 de jan. de 2019
Chegamos a um erro mais palpável agora!
Caused by : java . lang . RuntimeException : Não foi possível encontrar a conta .
at br . com . caelum . javafx . api . controllers . NovaContaController . buscaConta ( NovaContaController . java : 74 )
at
Ele acusa um erro no controller, método buscaConta na linha 74.
Como está essa classe?
greynowver 4 de jan. de 2019
Eu não tenho essa Classe. provavelmente ela veio no .jar que eu importei. Será que o erro está ai?
Minhas classes " ContaCorrente e ContaPoupanca estão assim :
package br.com.caelum.contas.modelo;
public class ContaCorrente extends Conta {
public String getTipo () {
return super . getTipo () + " Corrente" ;
}
@Override
public void saca ( double valor ) {
this . saldo -= ( valor + 0.10 );
}
}
package br.com.caelum.contas.modelo;
public class ContaPoupanca extends Conta {
public String getTipo () {
return super .getTipo () + " Poupança" ;
}
}
Jonathan_Medeiros 4 de jan. de 2019
Suas classes aparentemente estão corretas, verificou a possibilidade de ter faltado alguma configuração ou algo do tipo, já que algumas das classes estão compiladas no .jar?
Chegou a depurar sua aplicação para ver em que ponto acontece o problema?
greynowver 4 de jan. de 2019
Jhonatan, eu acabei de revisar todo o conteúdo da apostila e aparentemente o erro vem de alguma classe do .jar, já que todas as minhas classes e métodos estão iguais os da apostila. Quando vc diz “depurar” é o mesmo que debugar?
Jonathan_Medeiros 4 de jan. de 2019
Isso, é a mesma coisa!
Já chegou a fazer?
greynowver 4 de jan. de 2019
Jonathan_Medeiros 4 de jan. de 2019 1 like
Faz isso, qualquer novidade posta aqui que te ajudo no que eu puder!