Stò tentando di disegnare con java.
In vari tutorial ho trovato che posso definire una classe Jcomponent usando paintComponent per disegnare un mio "componente" ...
package it.slomito.pixel;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JComponent;
@SuppressWarnings("serial")
public class Cerchio extends JComponent {
private int x, y;
private double radius;
public Cerchio(int x, int y, double radius) {
this.x = x;
this.y = y;
this.radius = radius;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
// Graphics2D g2 = (Graphics2D) g;
int rad = (int) Math.floor(radius * 2);
g.setColor(Color.BLUE);
g.drawRect(20, 20, 10, 10);
g.setColor(Color.green);
g.fillOval(x, y, rad, rad);
}
}
...per poi usarlo aggiungendolo alla mia finestra.
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 482, 323);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = frame.getContentPane();
contentPane.setLayout(new BorderLayout(0, 0));
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.CENTER);
JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
Cerchio cr = new Cerchio(50,50,30);
panel.add(cr);
}
Ora mi piacerebbe sapere perchè se mando in esecuzione, non vedo nessun "oval" o "rect". Cosa sbaglio?
Ho notato che durante il caricamento dell'applicazione paintComponent viene richiamato due volte subito dopo la definizione di Cerchio, quindi dovrei vedere qualcosa.