2009-04-08 47 views
0

我想知道如何在用户点击三角形时用颜色填充三角形形状。使用鼠标点击三角形填充颜色

到目前为止,我使用txt文件作为输入文件来读取要在屏幕上绘制的三角形的坐标。

+0

你是如何绘制三角形吗? – 2009-04-08 12:49:22

回答

0

不知道你的“环境”什么......

扩展的JPanel。
添加MouseAdapter以捕获mouseClicked方法中的坐标,并将它们保存在面板的数组中。
重写drawComponent方法绘制三角形。 喜欢的东西

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

这不是完整的,但是......

相关问题