这是我学习 Java 的第二个学期,所以请耐心等待。我的部分任务是单击单选按钮并使用 Circle 的 draw 方法在单击鼠标按钮时在 Jpanel 内容窗格上绘制一个 Circle 对象。然后将每个 Circle 对象存储在一个 Arraylist 中,这样它就会一直停留在窗格中,直到我取消单击单选按钮。除了将 Circle 对象添加到 Arraylist 并将该圆圈保留在屏幕上之外,我可以让一切正常工作。当我再次单击时,它只会一次绘制一个圆圈并擦除第一个圆圈。我不认为我正在将创建的新圈子添加到 Arraylist,我只是一个圈子。没有把握。
这是我绘制圆圈部分的代码。
public class MyPanel extends JPanel {
public ArrayList<Circle> circles;
public void paintComponent(Graphics g) {
Circle c = new Circle(xstart, ystart); //create a new circle
ArrayList<Circle> circles = new ArrayList<Circle>();
if (drawing){
c.draw(g);
circles.add(c);
for(int k=0; k<circles.size(); k++){
circles.get(k).draw(g);
}
} // draw the circle
用于在我的 MouseTest 构造函数中绘制和声明绘制布尔值并绑定到单选按钮的代码。绘制 true 意味着当单击单选按钮时,它可以绘制圆圈。
JPanel radioPanel = new JPanel(new GridLayout(2,0)); //new GridLayout(y, x)
radioPanel.add(circleButton);
radioPanel.add(trackButton);
cp.add(radioPanel,BorderLayout.EAST);
drawing = false;
circleButton.addActionListener(new ActionListener() {
//Set drawing to true when the button is clicked
public void actionPerformed(ActionEvent ae) {
drawCircles();
}
});
public void drawCircles() { //initialize tracking to false
drawing = !drawing;`