這是我的第二個學期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