使用鼠标单击在三角形上填充颜色

时间:2009-04-08 12:45:16

标签: java colors mouse click

我想知道当用户点击三角形时如何用颜色填充三角形。

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

2 个答案:

答案 0 :(得分:1)

很久以前我做过类似的事情。here's something that might help

答案 1 :(得分: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);
        }
    }
}

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