Java - JPanel no dibuja bien

 
Vista:

JPanel no dibuja bien

Publicado por foriki (6 intervenciones) el 01/01/2016 17:35:18
Al hacer que se mueva una pelota por un JPanel para ver el movimiento necesito minimizar y maximizar la ventana si no,no puedo ver que se mueve la pelota.. No se cual puede ser el error?
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
sin imagen de perfil

JPanel no dibuja bien

Publicado por Hector (27 intervenciones) el 04/01/2016 22:14:55
Estaras implementando de forma incorrecta el metodo paint(), aqui te dejo el codigo de un Jpanel en el que podras dibujar, básicamente lo que hace es darte permiso de utilizar el hilo del JPanel a tu antojo por medio del método run(), todo lo que tienes que hacer es usar tus codigos de dibujo a partir de la linea que te indique:

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
public class Prueba extends Jpanel implements Runnable
{
    Thread animator = null;
    boolean running = false;
    Graphics g;
    Image      img = null;
 
    public Prueba(int ancho, int alto)
    {
        setPreferredSize(new Dimension(ancho, alto));
        setBackground(Color.BLACK);
    }
 
    public void addNotify()
    {
        super.addNotify();
 
        if(animator == null || !running)
        {
                animator = new Thread(this);
                 animator.start();
         }
    }
 
    public void render() {
        if(image == null)
        {
            image = createImage(ancho, alto);
            if(image == null)
            {
                System.out.println("Image vale null");
                return;
            }
            else
                g = image.getGraphics();
        }
 
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, ancho, alto);
        // Tus dibujos van a partir de esta linea<----------------------------------------
        g.setColor(Color.WHITE);
        g.fillRect(0,0,300,300);
    }
 
    /*
     * Pasa la imagen dibujada a la pantalla
    */
    public void paintScreen()
    {
        Graphics d = this.getGraphics();
        d.drawImage(image, 0, 0, null);
        Toolkit.getDefaultToolkit().sync();
        d.dispose();
    }
 
   public void run()
   {
         running = true;
 
         while(running)
         {
               render()
               paintScreen();
         }
 
        System.exit(0);
 
   }
}

Ya lo que te falta es agregarlo a un JFrame, un saludo.
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