Java - Error NullPointer Graphics java

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 9 puestos en Java (en relación al último mes)
Gráfica de Java

Error NullPointer Graphics java

Publicado por Sands (2 intervenciones) el 18/04/2020 23:14:00
Hola, disculpen alguien me puede apoyar con este problema. me arroja:

java.lang.NullPointerException
at Class.Eventos.actionPerformed(Eventos.java:35)

Codigo:

1
2
f = new Figura("Rectangulo", 60, 70, 80, 50);
VS.add(f);

La linea 35 es donde se agrega f al JFrame.

No logro encontrar el error ni como corregurlo, alguien me puede ayudar por favor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 1.751
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Error NullPointer Graphics java

Publicado por Rodrigo (469 intervenciones) el 19/04/2020 02:36:18
Incluye como esta definido en tu programa la variable VS, esa variable aparentmente no le has asignado valor alguno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha aumentado su posición en 9 puestos en Java (en relación al último mes)
Gráfica de Java

Error NullPointer Graphics java

Publicado por Sands (2 intervenciones) el 19/04/2020 02:47:53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package Class;
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
 
public class VentanaServidor {
 
    public static JFrame VS;
    public static JButton btnServidor;
    JLabel etiqueta;
 
    public VentanaServidor() {
 
        VS = new Componentes().frame("[ Servidor ]", 600, 500, new BorderLayout());
        btnServidor = new Componentes().boton(" Circulo ");
        btnServidor.setFont(new java.awt.Font("Cambria", Font.PLAIN, 20));
        btnServidor.setFocusable(false);
        btnServidor.addActionListener(new Eventos());
        etiqueta = new Componentes().etiqueta("[ Servidor ]");
        etiqueta.setFont(new java.awt.Font("Cambria", Font.PLAIN, 30));
        etiqueta.setForeground(Color.DARK_GRAY);
 
        VS.add(etiqueta, BorderLayout.NORTH);
        VS.add(btnServidor, BorderLayout.SOUTH);
 
        VS.setVisible(true);
 
    }
 
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package Class;
 
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
 
public class Figura extends JPanel{
 
    String Figura;
    int Ancho, Alto;
    int x = 0, y = 0;
 
    public Figura(String Figura, int Ancho, int Alto, int x, int y){
        this.Figura = Figura;
        this.x = x;
        this.y = y;
        this.Ancho = Ancho;
        this.Alto = Alto;
    }
 
    //COORDENADAS DONDE SE INICIA A CONSTRUIR LA FIGURA
    //int x = 50, y = 50;
 
    @Override
    public void paint(Graphics g){
        //super.paint(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setColor(Color.BLUE);
 
        if (Figura.equals("Circulo")) {
            g2d.drawOval(x, y, Ancho, Alto);
        }
 
        if(Figura.equals("Rectangulo")){
            g2d.drawRect(x, y, Ancho, Alto);
        }
    }
 
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package Class;
 
import static Class.LinkCliente.flujoDatosSalida;
import static Class.VentanaCliente1.btnCliente1;
import static Class.VentanaServidor.VS;
import static Class.VentanaServidor.btnServidor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class Eventos implements ActionListener {
 
    @Override
    public void actionPerformed(ActionEvent ae) {
 
        if (ae.getSource() == btnServidor) {
            Figura fg = new Figura("Circulo", 100, 100, 50, 50);
            System.out.println(fg);
            fg.repaint();
            VS.add(fg);
        }
 
        if (ae.getSource() == btnCliente1) {
 
            try {
                flujoDatosSalida.writeUTF("Rectangulo");
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
 
            Figura fgr = new Figura("Rectangulo", 70, 80, 80, 50);
            VS.add(fgr);
 
        }
 
    }
 
}



En el primer if de la clase eventos, si funciona sin problemas, pero en el segundo me arroja el error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.751
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Error NullPointer Graphics java

Publicado por Rodrigo (469 intervenciones) el 19/04/2020 06:03:01
Sugiero que la referencia hacia el JFrame se lo pases al constructor de la clase Eventos, y que luego en el metodo actionPerformed uses el campo de la clase Eventos, en vez de importar VS como lo estas haciendo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.751
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Error NullPointer Graphics java

Publicado por Rodrigo (469 intervenciones) el 19/04/2020 15:25:05
Parece que lo que te sugiero no es factible porque estas usando la clase Eventos en mas de 1 lugar. Es asi?

Otra pregunta: eliminaste algunas lineas de la clase Eventos antes de pegar el codigo aqui?
(El error original decia que estaba en la linea 35, pero el VS.add() esta en la linea 31.)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar