Pessoal estou com um problema, o desenho some quando abre a tela.
Pode me ajudar ?
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.Canvas;
public class TelaDesenho extends JFrame {
private JPanel contentPane;
private Canvas canvas;
private static TelaDesenho singleton;
/**
* Create the frame.
*/
public TelaDesenho() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
getCanvas().setBounds(0, 0, 434, 261);
contentPane.add(getCanvas());
}
public Canvas getCanvas() {
if(canvas == null) {
canvas = new Canvas();
}
return canvas;
}
public static TelaDesenho getSingleton() {
if(singleton == null) {
singleton = new TelaDesenho();
}
return singleton;
}
}
import java.awt.Canvas;
import java.awt.Graphics;
public class Desenho {
private static Desenho singleton;
public void desenhar() {
TelaDesenho td = TelaDesenho.getSingleton();
Canvas c = td.getCanvas();
Graphics g = c.getGraphics();
g.fillRect(0, 0, 100, 100);
}
public static Desenho getSingleton() {
if(singleton == null) {
singleton = new Desenho();
}
return singleton;
}
public class Principal {
public static void main(String[] args) {
TelaDesenho td = TelaDesenho.getSingleton();
td.setVisible(true);
Desenho d = Desenho.getSingleton();
d.desenhar();
}
}