这是我的第二个学期Java,因此请耐心等待。我的任务之一是单击单选按钮,并在单击鼠标按钮时使用Circle的绘制方法在Jpanel内容窗格上绘制Circle对象。然后将每个Circle对象存储在Arraylist中,以便它保留在窗格上,直到我取消单选按钮。除了将Circle对象添加到Arraylist并在屏幕上保留该圆之外,我可以让所有的工作都可以工作。当我再次点击时,它将一次只绘制一个圆圈并清除前一个圆圈。我不认为我在为Arraylist创建新的圈子,我只是一个圈子。不确定。将Circle对象添加到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构造函数中绘制和声明图形的代码并绑定到单选按钮。绘制正确意味着当单选按钮被点击时,它可以绘制圆圈。
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;`
我将代码和一些细节添加到了我的原始发布的图纸。 – handro 2012-02-18 22:12:14