Цвет заливки на треугольнике с помощью мыши - PullRequest
0 голосов
/ 08 апреля 2009

Мне было интересно, как заполнить треугольную форму цветом, когда пользователь нажимает на треугольник.

Пока что я использую txt-файл в качестве входного файла для считывания координаты треугольника, который будет нарисован на экране.

Ответы [ 2 ]

1 голос
/ 08 апреля 2009

Я сделал что-то подобное давно ... вот что может помочь

0 голосов
/ 08 апреля 2009

Не уверен, что ваше "окружение" ...

Расширение 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);
        }
    }
}

Это не завершено, но ...

...