Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.HeadlessException;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.Random;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.SwingUtilities;
- public class Rectangles extends JFrame {
- private int rectangles=1;
- private Random random = new Random();
- public Rectangles() {
- super();
- setLayout(new BorderLayout());
- JButton more = new JButton("more");
- JButton fewer = new JButton("fewer");
- more.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- rectangles*=2;
- Rectangles.this.repaint();
- }
- });
- fewer.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- if(rectangles>=2){
- rectangles/=2;
- Rectangles.this.repaint();
- }
- }
- });
- JPanel panel = new JPanel(){
- @Override
- protected void paintComponent(Graphics g) {
- super.paintComponent(g);
- g.setColor(Color.BLACK);
- for(int i=1;i<=rectangles;i++){
- int x= (int)Math.round(random.nextDouble()*getWidth());
- int y=(int)Math.round(random.nextDouble()*getHeight());
- int w = (int)Math.round(random.nextDouble()*(getWidth()-x));
- int h = (int)Math.round(random.nextDouble()*(getHeight()-y));
- g.drawRect(x, y, w, h);
- }
- }
- };
- add(more,BorderLayout.EAST);
- add(fewer,BorderLayout.WEST);
- add(panel,BorderLayout.CENTER);
- }
- public static void main(String[] args) {
- SwingUtilities.invokeLater(new Runnable(){
- @Override
- public void run() {
- Rectangles r = new Rectangles();
- r.setTitle("Random rectangles demo");
- r.setSize(new Dimension(400,300));
- r.setVisible(true);
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement