public void paint(Graphics g) {
		g.setColor(mouseHovering ? HOVER_BACKGROUND_COLOR : BASE_BACKGROUND_COLOR);
		g.fillRect(bounds.x, bounds.y, bounds.width, bounds.height);
		g.setColor(BORDER_COLOR);
		g.drawRect(bounds.x, bounds.y, bounds.width, bounds.height);
		g.setColor(TEXT_COLOR);
		int textX = bounds.x + ((bounds.width - g.getFontMetrics().stringWidth(text))
				/ 2); // Button's text is horizontally centered
		int textY = bounds.y + bounds.height / 2; // The text is already vertically centered
		g.drawString(text, textX, textY);
	}