Pintar: Paint(g) en JFrame osea Swing
le agrego JButtons y JLabels a un JFrame, pero cuando invoco el Paint(Graphics g) y dibujo una cadena (g.drawString ect...) se borran los demas objetos y al pasar el cursor del raton salen, probe tambien con el update(g), paintComponent(g) y con un JPanel() y nada...
en fin, lo que necesito es pintar (dibujar cadenas etc) con algun tipo de paint(g) en un JFrame() sin que nada se borre y que aparesca bien... porfabor, escriban los codigos aqui en el foro...
en fin, lo que necesito es pintar (dibujar cadenas etc) con algun tipo de paint(g) en un JFrame() sin que nada se borre y que aparesca bien... porfabor, escriban los codigos aqui en el foro...
Esto es porque estás redefiniendo el paint y Swing necesita su paint original para mostrar sus componentes correctamente. Puedes hacer esto:
Declaras una varible Graphics, le asignas el Graphics del JFrame existente y le añades a esa variable. Algo asÃ:
Graphics nuevo=getGraphics();
nuevo.drawString(...);
nuevo.setColor(....);
nuevo.....
Este código puede ir dentro de cualquier método menos en el init.
Y no te olvides borrar el:
public void paint(Graphics g){
....
}
Declaras una varible Graphics, le asignas el Graphics del JFrame existente y le añades a esa variable. Algo asÃ:
Graphics nuevo=getGraphics();
nuevo.drawString(...);
nuevo.setColor(....);
nuevo.....
Este código puede ir dentro de cualquier método menos en el init.
Y no te olvides borrar el:
public void paint(Graphics g){
....
}
Yo te sugerirÃa probaras lo siguiente. No dibujes en el JFrame, mas bien declara una nueva variable de tipo JPanel y sobre escribe el metodo paintComponent, osea algo asi:
mypanel = new JPanel()
{
protected void paintComponent (Graphics g)
{
super.paintComponent(g);
//aqui va lo que quieras dibujar
}
};
luego de hacer esto adicionas el panel en un sitio diferente de los JLabels y los JButtons y listo. Para pintar sinplemente das mypanel.repaint(); Ojalá te sirva.
mypanel = new JPanel()
{
protected void paintComponent (Graphics g)
{
super.paintComponent(g);
//aqui va lo que quieras dibujar
}
};
luego de hacer esto adicionas el panel en un sitio diferente de los JLabels y los JButtons y listo. Para pintar sinplemente das mypanel.repaint(); Ojalá te sirva.