Pintar: Paint(g) en JFrame osea Swing

javaBasic++#
10 de Diciembre del 2002
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...

Carlos
10 de Diciembre del 2002
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){
....
}

andretsel
10 de Diciembre del 2002
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.