2010-05-10 6 views

Répondre

1

Pour dessiner un cercle rempli avec un contour dans une couleur différente, vous pouvez utiliser drawOval en plus fillOval (ne pas oublier de changer la couleur du contexte Graphics avant de dessiner le contour).

Vous devriez également étudier la classe Grahpics2D, qui a beaucoup plus de fonctionnalités que l'objet normal Graphics. (Vous pouvez simplement lancer une instance Graphics en tant que Graphics2D).

En particulier, pour que les cercles aient l'aspect "sympa", vous pouvez définir l'indicateur de rendu anti-aliasing. Vous pouvez le faire comme suit:.

Graphics2D g2d = (Graphics2D)g; 

// Turn anti-aliasing on. 
g2d.setRenderingHint(
    RenderingHints.KEY_ANTIALIASING, 
    RenderingHints.VALUE_ANTIALIAS_ON); 

// Draw everything you want... 

// Turn anti-aliasing off again. 
g2d.setRenderingHint(
    RenderingHints.KEY_ANTIALIASING, 
    RenderingHints.VALUE_ANTIALIAS_ON); 
3

Utilisez Graphics méthodes de classe:

  • fillRect
  • fillOval

et des méthodes similaires pour accomplir ce que vous essayez de sur un JPanel.

Exemple:

public class Eyes extends JPanel 
{ 
    // override paint 
    @Override 
    protected void paintComponent(Graphics g) 
    { 
     super(g); 
     // use fillRect, fillOval and color methods 
     // on "g" to draw what you want 
    } 
} 

Ensuite, bien sûr, vous placerez les yeux objet dans un JInternalFrame, d'autres JPanel ou contenant que vous avez besoin.

+0

+1 En outre, "les programmes Swing doivent remplacer' paintComponent() 'au lieu de la peinture remplaçant()." http://java.sun.com/products/jfc/tsc/articles/painting/index.html – trashgod

+0

@trashgod: merci. changé l'échantillon de code pour refléter ce que vous avez suggéré. –

Questions connexes