Java - Dibujar en JPanel

 
Vista:

Dibujar en JPanel

Publicado por Fran (34 intervenciones) el 29/03/2001 19:30:59
Saludos, mi cuestión es la siguiente :
Tengo un JPanel en el cual he insertado una serie de JLabel. Lo que quiero hacer ahora es unir estos JLabel mediante líneas. Para ello he hecho lo siguiente :

public void paint (Graphics g) {
Graphics2D g2d = (Graphics2D)pnl_esquema.getGraphics();
g2d.setPaint(Color.cyan);
g2d.drawLine(90,353,90,295);
g2d.drawLine(219,381,219,325);
g2d.drawLine(219,325,106,325);
g2d.drawLine(106,325,106,295);
}

Ahora pueden suceder 2 cosas : o bien solo se dibujan las líneas y no el resto de los componentes del panel, o bien, si añado un repaint() después del último g2d.drawLine no se dibujan las líneas y si el resto del panel. Si estoy equivocado, me gustaría saber en que parte del código se deben insertar las líneas que me permiten dibujar.
Gracias
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

RE:Dibujar en JPanel

Publicado por Xavi Canal (241 intervenciones) el 30/03/2001 08:56:30
Nas,

debes llamar al paint del propio JPanel para
que dibuje las cosas, luego haces tus drawLines

usease

public void paint (Graphics g) {
super.paint (g);

// Tu codigo
}

att. Xavi Canal
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

RE:Dibujar en JPanel

Publicado por Fran (34 intervenciones) el 30/03/2001 22:40:26
Si, pero como le digo que donde quiero dibujar es en el JPanel. Yo tengo un applet de la siguiente manera.
public class sim extends JApplet {
JPanel p1 = new JPanel ....
.
.
public void paint (Graphics g) {.....}

Este método paint me dibuja en el applet. ¿Como relacionarlo con los JPanel que yo tengo en el applet. ¿Cada cual tiene su paint?
Saludos
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

RE:Dibujar en JPanel

Publicado por Xavi Canal (241 intervenciones) el 02/04/2001 11:15:02
Nas,

efectivamente, todos los componentes tienen su
paint (), cuando declares el Panel lo puedes
declarar así:

JPanel p1 = new JPanel (...) {
public void paint (Graphics g) {
super.paint (g);
// tu codigo de paint
}
};

Eso o creas una clase que extienda de JPanel y
sobreescribes el método paint

att. Xavi Canal
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