Conversao de valores dando erro

5 respostas
Y

Eai pessoal, nao é o primeiro post meu tentando resolver esse problema...

Eu tento converter os valores de alguns textfields em Double, e utilizar esses valores para desenhar formas geometricas.
Aqui o código:

Esse é o frame principal:

public class Wallpaper extends JFrame {
 String colunaRV,comprimentoRV,linhaRV,larguraRV,colunaEV,comprimentoEV,linhaEV,larguraEV,colunaLV,comprimentoLV,linhaLV,larguraLV;

botao1.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            if (retangulo.isSelected() == true && elipse.isSelected() == true && linha.isSelected() == true){

                    colunaRV = (colunaRetangulo.getText());
                    linhaRV = (linhaRetangulo.getText());
                    larguraRV = (larguraRetangulo.getText());
                    comprimentoRV = (comprimentoRetangulo.getText());

                    colunaEV = (colunaElipse.getText());
                    linhaEV = (linhaElipse.getText());
                    larguraEV = (larguraElipse.getText());
                    comprimentoEV = (comprimentoElipse.getText());

                    colunaLV = (colunaLinha.getText());
                    linhaLV = (linhaLinha.getText());
                    larguraLV = (larguraLinha.getText());
                    comprimentoLV = (comprimentoLinha.getText());

                RELJFrame jframeREL = new RELJFrame();
                jframeREL.setVisible(true);
}
}
}

Esse é o panel onde vai os desenhos:

public class REL extends JPanel {
    Wallpaper jframeWallpaper = new Wallpaper();

    public Rectangle2D r(){
        return new Rectangle2D.Double(Double.parseDouble(jframeWallpaper.colunaRV),Double.parseDouble(jframeWallpaper.linhaRV),Double.parseDouble(jframeWallpaper.larguraRV),Double.parseDouble(jframeWallpaper.comprimentoRV));
    }
    public Line2D l(){
        return new Line2D.Double(Double.parseDouble(jframeWallpaper.colunaLV),Double.parseDouble(jframeWallpaper.linhaLV),Double.parseDouble(jframeWallpaper.larguraLV),Double.parseDouble(jframeWallpaper.comprimentoLV));
    }
    public Ellipse2D e(){
        return new Ellipse2D.Double(Double.parseDouble(jframeWallpaper.colunaEV),Double.parseDouble(jframeWallpaper.linhaEV),Double.parseDouble(jframeWallpaper.larguraEV),Double.parseDouble(jframeWallpaper.comprimentoEV));
    }
public void paintComponent(Graphics graphics)
    {
       super.paintComponent(graphics); 
AffineTransform at =
         AffineTransform.getTranslateInstance(w / 2, h / 2);
         g.draw(at.createTransformedShape(l()));
         g.draw(at.createTransformedShape(r()));
         g.draw(at.createTransformedShape(e()));

     g.dispose();
   }

Quando eu clico em desenhar, nao aparece nada na tela a nao ser um pequeno retangulo branco no topo esquerdo do frame e o netbeans ta volta esse erro:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:991)
at java.lang.Double.parseDouble(Double.java:510)
at wallpapers.REL.r(REL.java:19)
at wallpapers.REL.paintComponent(REL.java:51)
at javax.swing.JComponent.paint(JComponent.java:1029)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5131)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1479)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1410)
at javax.swing.RepaintManager.paint(RepaintManager.java:1224)
at javax.swing.JComponent.paint(JComponent.java:1015)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
at java.awt.Container.paint(Container.java:1780)
at java.awt.Window.paint(Window.java:3375)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Pelo que eu entendi ta dando problema na coversao dos valores (?)

Alguem sabe como conserto isso? Ou pelo menos me dizer exatamente o que esta acontecendo?

5 Respostas

Scoobydoo

Qual a linha que ta dando erro…
Essa mensagem indica que o Objecto não foi instanciado…
Verifique se você esta populando todos os objetos da sua classe.

Y

O segundo erro (at wallpapers.REL.l(REL.java:22)) indica aqui:
return new Line2D.Double(Double.parseDouble(jframeWallpaper.colunaLV),Double.parseDouble(jframeWallpaper.linhaLV),Double.parseDouble(jframeWallpaper.larguraLV),Double.parseDouble(jframeWallpaper.comprimentoLV));
Nessa linha…
Eu acredito que eu estou sim instanciando tudo certinho…

luciano2

As propriedades do seu WallPaper parecem estar com valores nulos. Por isso o null pointer no parseDouble

Y

Como assim, propriedades?

Voce quer dizer, por exemplo o : setLayout(null)?

Nao entendi direito…

luciano2

Não o erro no seu stacktrace é um nullpointer no metodo parseDouble, então o atributo que você está passando está nulo

Criado 24 de março de 2011
Ultima resposta 25 de mar. de 2011
Respostas 5
Participantes 3