2010-03-24 8 views
14

J'ai un JPanel avec une disposition de grille. Dans les "cellules" de la grille je peux mettre différents éléments (par exemple JButtons). Il n'y a pas de problèmes avec ça. Mais maintenant je veux mettre un cercle rempli dans certaines des cellules. Je voudrais aussi relier un ActionListener avec ces cercles. En plus de détails, si je clique sur le cercle, il disparaît de la cellule courante et apparaît dans une autre. Comment puis-je le faire en Java? J'utilise Swing.Comment dessiner un cercle plein en Java?

Répondre

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

Voici quelques docs sur paintComponent (link).

Vous devez remplacer cette méthode dans votre JPanel et faire quelque chose de similaire à l'extrait de code ci-dessus. Dans votre ActionListener, vous devez spécifier x, y, diameter et appeler le repaint().

+13

Heh, pensait que c'était une réponse personnelle pour une seconde. –

+0

@mmyers: oui, c'est un peu déroutant)) – Roman

+0

@Roman Link est maintenant mort. [Est-ce un remplacement approprié?] (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); 
Questions connexes