2010-03-24 16 views
14

Tengo un JPanel con un diseño de cuadrícula. En las "celdas" de la grilla puedo poner diferentes elementos (por ejemplo, JButtons). No hay problemas con eso. Pero ahora quiero poner un círculo lleno en algunas de las celdas. También me gustaría relacionar un ActionListener con estos círculos. En más detalles, si hago clic en el círculo, desaparece de la celda actual y aparece en otra. ¿Cómo puedo hacerlo en Java? Estoy usando Swing.Cómo dibujar un círculo lleno en Java?

Respuesta

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); 
    ... 
} 

Aquí hay algunos documentos sobre paintComponent (link).

debe reemplazar dicho método en el JPanel y hacer algo similar al código anterior.

En su ActionListener debe especificar x, y, diameter y llame repaint().

+13

Heh, pensé que era una auto-respuesta por un segundo allí. –

+0

@mmyers: sí, es un poco confuso)) – Roman

+0

@Roman Link ahora está muerto. [¿Es este un reemplazo adecuado?] (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); 
Cuestiones relacionadas