2010-03-24 29 views
14

Ho un JPanel con un layout a griglia. Nelle "celle" della griglia posso inserire diversi elementi (ad esempio JButtons). Non ci sono problemi con questo. Ma ora voglio mettere un cerchio pieno in alcune celle. Mi piacerebbe anche collegare un ActionListener con queste cerchie. Più in dettaglio, se clicco sul cerchio scompare dalla cella corrente e appare in un altro. Come posso farlo in Java? Sto usando Swing.Come disegnare un cerchio pieno in Java?

risposta

27
public void paintComponent(Graphics g) { 
    super.paintComponent(g); 
    Graphics2D g2d = (Graphics2D)g; 
    // Assume x, y, and diameter are instance variables. 
    Ellipse2D.Double circle = new Ellipse2D.Double(x, y, diameter, diameter); 
    g2d.fill(circle); 
    ... 
} 

Di seguito sono riportati alcuni documenti relativi a paintComponent (link).

Devi sovrascrivere quel metodo nel tuo JPanel e fare qualcosa di simile allo snippet di codice sopra.

In ActionListener è necessario specificare x, y, diameter e chiamare repaint().

+13

Heh, ha pensato che fosse un auto-risposta per un secondo lì. –

+0

@mmyers: sì, è un po 'di confusione)) – Roman

+0

@Roman Link ora è morto. [È un sostituto adatto?] (Https://docs.oracle.com/javase/tutorial/uiswing/painting/closer.html) – Gary

7
/***Your Code***/ 
public void paintComponent(Graphics g){ 
/***Your Code***/ 
    g.setColor(Color.RED); 
    g.fillOval(50,50,20,20); 
} 

g.fillOval(x-axis,y-axis,width,height); 
Problemi correlati