public ThePanel(String name, String imgPath) {
		setBackground(BG_COLOR);
		setLayout(new BorderLayout());

		label.setForeground(FG_COLOR);
		label.setFont(new Font("Sans", Font.BOLD, 90));
		label.setVerticalAlignment(SwingConstants.CENTER);
		label.setHorizontalAlignment(SwingConstants.CENTER);
		label.setText(name);

		try {
			bgImg = ImageIO.read(new File(imgPath));
		} catch (IOException ex) {
			System.err.println("[error] cannot read image path '" + imgPath + "'");
			add(label, BorderLayout.CENTER);
		}

		addMouseListener(new MouseAdapter() {
			@Override
			public void mouseEntered(MouseEvent e) {
				hover = true;
				if (actionEnabled) showBorder();
			}

			@Override
			public void mouseExited(MouseEvent e) {
				hover = false;
				hideBorder();
			}

			@Override
			public void mouseReleased(MouseEvent e) {
				if (action != null && actionEnabled) action.run();
			}
		});
	}