Fill-in color on triangle using mouse click
Question
I was wondering how to fill in a triangle shape with color when a user click on the triangle.
So far I am using txt file as input file to read the coordinate of the triangle to be drawn on screen.
Solution
I did something like this long ago .. here's something that might help
OTHER TIPS
Not sure what your "environment is"...
Extend a JPanel.
Add an MouseAdapter to capture the coordinates in the mouseClicked method and save them in an array in your panel.
Override the drawComponent method to draw the triangle.
Something like
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);
}
}
}
It's not complete, but ...
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow