import javax.swing.*;
import java.awt.*;

public class Pic2 extends JFrame {											//Tämä luokka on JFrame-luokan "laajennos"
	
	public Pic2() {														//Konstruktori
		Container container = getContentPane();										//Luodaan Container-olio
		container.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 15));				//Asetetaan Container-olion layoutiksi FlowLayout
		container.add(new RectEmpty());								//Luo ikkunaan painonapin
	}
	
	public static void main(String[] args) {
		Pic2 gui = new Pic2();									//Luo uuden ikkunan
		gui.setSize(200, 200);														//Asettaa ikkunalle koon													
		
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();			//Hakee ruudun koon Dimension-olioon screenSize
		int screenWidth = screenSize.width;											//Hakee ruudun leveyden Dimension-oliosta screenSize int-tyyppiseen muuttujaan
		int screenHeight = screenSize.height;										//Hakee ruudun korkeuden Dimension-oliosta screenSize int-tyyppiseen muuttujaan
		
		Dimension frameSize = gui.getSize();										//Hakee ikkunan koon Dimension-olioon frameSize
		int x = (screenWidth - frameSize.width)/2;									//Vähentää ruudun leveydestä ikkunan leveyden ja erotuksena saa ikkunan vasemman yläkulman paikan vaakasuunnassa
		int y = (screenHeight - frameSize.height)/2;								//Vähentää ruudun korkeudesta ikkunan korkeuden ja erotuksena saa ikkunan vasemman yläkulman paikan pystysuunnassa
		
		gui.setTitle("Ikkunan nimi");												//Asettaa ikkunalle nimen
		gui.setLocation(x, y);														//Asettaa ikkunan vasemman yläkulman paikaksi x:n ja y:n.
		gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);							//Tappaa ohjelman suorituksen kun ikkuna suljetaan
		gui.setVisible(true);														//Tekee ikkunan näkyväksi
	}
}

class RectEmpty extends JPanel {
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		g.setColor(Color.red);
		g.drawRect(5, 5, 60, 30);
	}	
}

class RectFilled extends JPanel {
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		g.setColor(Color.green);
		g.fillRect(5, 5, 60, 30);
	}
}

class Rect3D extends JPanel {
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		g.setColor(Color.cyan);
		g.fill3DRect(5, 5, 60, 30, true);
	}
}
