import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Rectangle;
import java.util.Arrays;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;

public class FirstGUI {

	public static void main(String[] args) {
		JFrame frame = new JFrame();

		frame.setSize(600, 400);
		frame.setTitle("Translate Rectangle");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Rectangle rect1 = new Rectangle(190,50,100,150);
		Rectangle rect2 = new Rectangle(190,140,200,50);

		JComponent component = new JComponent() {
			private static final long serialVersionUID = -3483603444237111028L;
			@Override
			protected void paintComponent(Graphics g) {
				super.paintComponent(g);
				Graphics2D g2 = (Graphics2D)g;
				g2.setColor(Color.RED);
				g2.fill(rect1);
				g2.setColor(Color.BLACK);
				g2.fill(rect2);
			}
		};

		frame.add(component);

		JPanel panel = new JPanel();
		Border border = BorderFactory.createTitledBorder(
				BorderFactory.createLineBorder(Color.BLUE), "Button Area",
				TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION);
		panel.setBorder(border);
		panel.setLayout(new GridLayout(1,0));
		JButton button1 = new JButton("Translate Right");
		JButton button2 = new JButton("Translate Left");
		button1.addActionListener(e -> {
			rect1.translate(100, 80);
			button1.setEnabled(false);
			button2.setEnabled(true);
			component.repaint();
		});
		button2.addActionListener(e -> {
			rect1.translate(-100, -80);
			button1.setEnabled(true);
			button2.setEnabled(false);
			component.repaint();
		});

		panel.add(button1);
		panel.add(button2);
		button2.setEnabled(false);

		frame.add(panel, BorderLayout.PAGE_END);
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);
	}
}