Ir ao conteúdo

Posts recomendados

Postado

Boa tarde. Uma dúvida  eu criei um botão para executar a operação de soma. NO entanto ele só tem permitido eu relacionar duas variáveis aos seus respectivos Campos de texto. Ou seja,  se eu apagar a linha Altura= Double.valueOf(altura1.getText().replaceAll(",",".")); deixando a penas o "a" e o "bb", o botão funciona. Alguém pode me ajudar???

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
         Double Estribo, cc, dominio, Coef, Altura, Es, Ec, Ecs, Ess, Ecu, Ec2;
        
          double a, bb, c;
         Altura= Double.valueOf(altura1.getText().replaceAll(",","."));
        a= Double.valueOf(dd1.getText().replaceAll(",","."));
        bb=Double.valueOf(dd2.getText().replaceAll(",","."));

        c = a+bb+Altura;

        dd3.setText(String.valueOf(c ));

 

se eu colocar mais linhas relacionando qualquer variável, o cálculo não é executado e os "campos texto" ficam em branco e aparece a seguinte mensagem:

 

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
    at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
    at java.lang.Double.parseDouble(Double.java:538)
    at java.lang.Double.valueOf(Double.java:502)
    at NewJFrame.jButton1ActionPerformed(NewJFrame.java:271)
    at NewJFrame.access$000(NewJFrame.java:11)
    at NewJFrame$1.actionPerformed(NewJFrame.java:60)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6533)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6298)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

 

 

Postado
1 hora atrás, lucas.picnotaime disse:

Double Estribo, cc, dominio, Coef, Altura, Es, Ec, Ecs, Ess, Ecu, Ec2;

 

Verifique se você digitou Double ou double no código.

 

Em qualquer caso é com letra minúscula.

 

Aparentemente, a String referente à altura deve ser vazia por causa da variável que não foi inicializada.

Postado
4 horas atrás, lucas.picnotaime disse:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String

Você não pode converter uma String vazia para double. Precisa colocar um teste condicional para saber se a String possui valor antes de tentar converter.

 

2 horas atrás, MartinBot disse:

Em qualquer caso é com letra minúscula.

double é um tipo primitivo de dado que trabalha com valores numéricos com precisão decimal. Double é um tipo wrapper usado para encapsular o tipo double quando você precisa trabalhar com tipos primitivos, porém a API exige um objeto.

Todos os tipos primitivos possuem uma correspondente wrapper, geralmente é o próprio nome, mas escrito com letra maiúscula (pois se trata de uma classe).

4 horas atrás, lucas.picnotaime disse:

Double.valueOf();

Serve para converter double em Double. Se você quer converter String em double, use:

Double.parseDouble();

E passe a String dentro do parênteses. Lembrando que se a String não for um valor numérico válido, esse método lançará a exceção NumberFormatException.

 

Para saber mais sobre as classes wrapper:

Curso Java Completo - Aula 78: Classes Wrapper pt 01

Curso Java Completo - Aula 79: Classes Wrapper pt 02

  • Curtir 1
Postado
5 minutos atrás, AdrianoSiqueira disse:

Double é um tipo wrapper usado para encapsular o tipo double quando você precisa trabalhar com tipos primitivos, porém a API exige um objeto.

 

Entendi. Obrigado pela resposta. Tinha esquecido de alguns detalhes sobre o tema. Fiquei um tempo programando python e larguei o java 😅

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...