Frage

Ich habe mich gefragt, wie man in einer Dreiecksform mit Farbe zu füllen, wenn ein Benutzer auf dem Dreieck klicken.

Bisher habe ich txt-Datei als Eingabedatei bin mit der Koordinate des Dreiecks zu lesen auf dem Bildschirm gezogen werden.

War es hilfreich?

Lösung

Ich habe so etwas wie dies vor langer Zeit .. hier ist etwas, das

Andere Tipps

Nicht sicher, was Ihre "Umwelt" ...

Erweitern einer JPanel.
Fügen Sie einen Mouseadapter die Koordinaten in der mouseClicked Methode zu erfassen und sie in einem Array in Ihrem Panel speichern.
Überschreiben des drawComponent Verfahren das Dreieck zu ziehen. So etwas wie

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

Es ist nicht vollständig, aber ...

scroll top