2009-04-08 6 views
0

ユーザーが三角形をクリックすると三角形の色を塗りつぶす方法が不思議でした。マウスクリックで三角形の塗りつぶし色を入力する

これまでは、入力ファイルとしてtxtファイルを使用して、画面上に描かれる三角形の座標を読み取っています。

+0

完了していないのですが...? –

+0

これまでのプログラムでは、txtファイルから三角形の座標を読み取って三角形を描画していましたが、txtファイルからハードコードされた代わりにマウスを使って三角形を描画する方法があるかどうかは疑問でした – Jessy

答えて

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

よう 何かがそれはどのように三角形を描いている