Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import java.awt.geom.*;
- import javax.swing.*;
- import java.util.*;
- import java.awt.event.*;
- public class DrawCircle
- {
- public static int size = 500;
- public static Color color = Color.RED;
- public static void main(String[] args)
- {
- DrawFrame frame = new DrawFrame(size, color);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setVisible(true);
- }
- }
- class DrawFrame extends JFrame
- {
- public DrawFrame(int size, Color color)
- {
- setTitle("Drawing Circle");
- setSize(size, size + 31);
- DrawPanel panel = new DrawPanel(size, color);
- add(panel);
- }
- }
- class DrawPanel extends JPanel
- {
- Color color;
- double centerX;
- double centerY;
- double radius;
- int brush_counter = 0;
- private ArrayList<Ellipse2D> circles;
- public DrawPanel(int size, Color color)
- {
- this.color = color;
- centerX = centerY = radius = size / 2;
- circles = new ArrayList<Ellipse2D>();
- JButton brushAreaRed = new JButton("Red");
- add(brushAreaRed);
- JButton brushAreaBlue = new JButton("Blue");
- add(brushAreaBlue);
- JButton brushAreaGreen = new JButton("Green");
- add(brushAreaGreen);
- ColorAction brushAreaActionRed = new ColorAction(Color.RED);
- ColorAction brushAreaActionBlue = new ColorAction(Color.BLUE);
- ColorAction brushAreaActionGreen = new ColorAction(Color.GREEN);
- brushAreaRed.addActionListener(brushAreaActionRed);
- brushAreaBlue.addActionListener(brushAreaActionBlue);
- brushAreaGreen.addActionListener(brushAreaActionGreen);
- }
- public void brushAndRepaint(Color color)
- {
- this.color = color;
- if (brush_counter == 0)
- {
- Ellipse2D circle = new Ellipse2D.Double();
- circle.setFrameFromCenter(centerX, centerY, centerX + radius, centerY + radius);
- circles.add(circle);
- brush_counter++;
- } else if (brush_counter == 1)
- {
- for (double i = radius; i > 0; i = i - 0.1)
- {
- Ellipse2D circle = new Ellipse2D.Double();
- circle.setFrameFromCenter(centerX, centerY, centerX + i, centerY + i);
- circles.add(circle);
- }
- brush_counter++;
- } else
- {
- Ellipse2D initial = circles.get(0);
- circles = new ArrayList<Ellipse2D>();
- circles.add(initial);
- brush_counter = 0;
- }
- repaint();
- }
- public void paintComponent(Graphics g)
- {
- super.paintComponent(g);
- Graphics2D g2 = (Graphics2D) g;
- Stroke stroke = new BasicStroke(1f);
- g2.setStroke(stroke);
- for (Ellipse2D circle : circles)
- {
- g2.setColor(this.color);
- g2.draw(circle);
- }
- }
- private class ColorAction implements ActionListener
- {
- private Color color;
- public ColorAction(Color color)
- {
- this.color = color;
- }
- public void actionPerformed(ActionEvent event)
- {
- brushAndRepaint(this.color);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement