public final void initUI() {

		pos = new int[][]{
				{0, 1, 2},
				{3, 4, 5},
				{6, 7, 8},
				{9, 10, 11}
		};

		centerPanel = new JPanel();
		centerPanel.setLayout(new GridLayout(4, 4, 0, 0));

		ImageIcon sid = new ImageIcon("./files/img/sid.jpg");
		source = sid.getImage();

		width = sid.getIconWidth();
		height = sid.getIconHeight();


		add(Box.createRigidArea(new Dimension(0, 5)), BorderLayout.NORTH);
		add(centerPanel, BorderLayout.CENTER);


		for (int i = 0; i < 4; i++) {
			for (int j = 0; j < 3; j++) {
				if (j == 2 && i == 3) {
					label = new JLabel("");
					centerPanel.add(label);
				} else {
					button = new JButton();
					button.addActionListener(this);
					centerPanel.add(button);
					image = createImage(new FilteredImageSource(source.getSource(),
							new CropImageFilter(j * width / 3, i * height / 4,
									(width / 3) + 1, height / 4)));
					button.setIcon(new ImageIcon(image));
				}
			}
		}

		setSize(325, 275);
		setTitle("Puzzle");
		setResizable(false);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	}