Как нарисовать несколько кругов - Java
Формулировка задачи:
Вопрос такой.
есть Panel и у меня программа рисует при нажатии мышкой на нее круг со случайным цветом, но при повторном нажатии старый круг стирается и рисуется новый ,так вот я хотел бы спросить как мне написать код что б я смог нарисовать таких кругов допустим 6 штук и при нажатии 7-ой раз первый круг стирался ирисовал седьмой и т.д.
Мне б хотя бы подсказку как сохранить старый круг и чтоб появился новый .(в итоге будет два и т.д.)
Вот мой код :
import java.awt.*;
import java.awt.event.*;
public class Circles {
public static void main(String[] args) {
PaintEx e = new PaintEx();
e.launch();
}
}
class PaintEx {
private Panel pan, pan1, pan2;
String x, y, R;
private Frame f;
private Label lab;
int s, r, X, Y;
private TextField text, text1, text2;
private Button b;
public PaintEx() {
b = new Button("Go");
pan1 = new Panel();
pan2 = new Panel();
text = new TextField("", 10);
text1 = new TextField("", 10);
text2 = new TextField("", 10);
lab = new Label("Circle");
}
public void launch() {
pan = new Panel() {
public void paint(Graphics g) {
Color newColor = new Color((int) (Math.random() * 255),
(int) (Math.random() * 255),
(int) (Math.random() * 255));
g.setColor(newColor);
g.fillOval(X, Y, r, r);
}
};
pan.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
// R = text2.getText();
// r = Integer.parseInt(R);
r =70;
X = e.getX() - r / 2;
Y = e.getY() - r / 2;
text.setText(X + "");
text1.setText(Y + "");
pan.repaint();
}
});
f = new Frame("Moving circles");
f.setLayout(new BorderLayout());
f.add(pan, BorderLayout.CENTER);
f.add(pan1, BorderLayout.SOUTH);
f.add(pan2, BorderLayout.NORTH);
pan1.add(text);
pan1.add(text1);
pan1.add(text2);
pan1.add(b);
pan2.setLayout(new BorderLayout());
pan2.add(lab, BorderLayout.NORTH);
f.setSize(400, 400);
f.setVisible(true);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
x = text.getText();
y = text1.getText();
R = text2.getText();
X = Integer.parseInt(x);
Y = Integer.parseInt(y);
r = Integer.parseInt(R);
pan.update(pan.getGraphics());
}
});
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
Решение задачи: «Как нарисовать несколько кругов»
textual
Листинг программы
public void update(Graphics g){ paint(g); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д