2009-04-08 6 views
0

Je me demandais comment remplir une forme de triangle avec la couleur quand un utilisateur clique sur le triangle. Jusqu'ici j'utilise le fichier txt comme fichier d'entrée pour lire les coordonnées du triangle à dessiner sur l'écran.Couleur de remplissage sur le triangle en utilisant le clic de la souris

+0

comment allez-vous dessiner le triangle? –

+0

Jusqu'ici mon programme dessine le triangle en lisant les coordonnées du triangle du fichier txt, mais je me demandais s'il y avait un moyen que je peux utiliser la souris pour dessiner le triangle au lieu de le coder en dur du fichier txt – Jessy

Répondre

0

Je ne sais pas ce que votre "environnement" ...

étendez un JPanel.
Ajoutez un MouseAdapter pour capturer les coordonnées dans la méthode mouseClicked et enregistrez-les dans un tableau de votre panneau.
Substituez la méthode drawComponent pour dessiner le triangle. Quelque chose comme

class MyPanel extends JPanel { 
    private int count = 0; 
    private Point[] points = new Point[3]; 

    MyPanel() { 
     setBackground(Color.WHITE); 
     addMouseListener(new MouseAdapter() { 
      @Override 
      public void mouseClicked(MouseEvent e) { 
       if (e.getButton() == MouseEvent.BUTTON1) { 
        if (count == points.length) { 
         for (int i = 1; i < points.length; i++) { 
          points[i-1] = points[i]; 
         } 
         count -= 1; 
        } 
        points[count] = e.getPoint(); 
        count += 1; 
        repaint(); 
       } 
      } 
     }); 
    } 

    @Override 
    protected void paintComponent(Graphics g) { 
     super.paintComponent(g); 
     Graphics2D gg = (Graphics2D) g; 
     if (count > 2) { 
      Polygon polygon = new Polygon(); 
      for (int i = 0; i < count; i++) { 
       polygon.addPoint(points[i].x, points[i].y); 
      } 
      gg.setColor(Color.BLUE); 
      gg.fill(polygon); 
     } 
    } 
} 

Ce n'est pas complet, mais ...

Questions connexes