Question: package JavaFun; import javax.swing. * ; import java.awt. * ; import java.awt.event. * ; import java.util.ArrayList; import java.util.List; public class DrawPolygon extends JFrame implements MouseListener,

package JavaFun;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.List;
public class DrawPolygon extends JFrame implements MouseListener, ActionListener {
private List points;
private JButton drawButton, clearButton;
private boolean isDrawing;
private DrawingPanel drawingPanel;
public DrawPolygon(){
setTitle("Polygon Drawer");
setSize(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel buttonPanel = new JPanel();
drawButton = new JButton("Draw Polygon");
drawButton.addActionListener(this);
clearButton = new JButton("Clear");
clearButton.addActionListener(this);
buttonPanel.add(drawButton);
buttonPanel.add(clearButton);
add(buttonPanel, BorderLayout.SOUTH);
drawingPanel = new DrawingPanel();
add(drawingPanel);
points = new ArrayList<>();
isDrawing = false;
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if (e.getSource()== drawButton){
isDrawing = true;
} else if (e.getSource()== clearButton){
points.clear();
isDrawing = false;
}
drawingPanel.repaint();
}
public void mouseClicked(MouseEvent e){
if (isDrawing){
points.add(e.getPoint());
System.out.println("Point added: "+ e.getPoint());
drawingPanel.repaint();
System.out.println("Repainting...");
}
}
public void mousePressed(MouseEvent e){
System.out.println("Mouse pressed");
}
public void mouseReleased(MouseEvent e){
System.out.println("Mouse released");
}
public void mouseEntered(MouseEvent e){
System.out.println("Mouse entered");
}
public void mouseExited(MouseEvent e){
System.out.println("Mouse exited");
}
private class DrawingPanel extends JPanel {
@Override
protected void paintComponent(Graphics g){
super.paintComponent(g);
if (isDrawing){
if (!points.isEmpty()){
int[] xPoints = new int[points.size()];
int[] yPoints = new int[points.size()];
for (int i =0; i < points.size(); i++){
Point point = points.get(i);
xPoints[i]=(int) point.getX();
yPoints[i]=(int) point.getY();
}
g.drawPolygon(xPoints, yPoints, points.size());
}
}
}
}
public static void main(String[] args){
SwingUtilities.invokeLater(DrawPolygon::new);
}
} why is my code not working

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!