private boolean contains(Component component, Point point) {
		Point p = null;
		double px_min = 0, py_min = 0; // Ͻ
		double px_max = 0, py_max = 0; // ½
		double x = 0, y = 0; // Ŀ(x)(y)
		double px = 0, py = 0; // 
		boolean valid = true; // Ƿshowing״̬

		try {
			p = component.getLocationOnScreen(); // תĻϵȽ
		} catch (IllegalComponentStateException icse) { // ʱ쳣
			valid = false;
		}

		if (valid) {
			px_min = p.getX();
			py_min = p.getY();

			Dimension dimension = component.getPreferredSize(); // ֱthis.getX()this.getY()
			x = dimension.getWidth();
			y = dimension.getHeight();

			px_max = px_min + x;
			py_max = py_min + y;

			px = point.getX();
			py = point.getY();
			return (px_min <= px && px <= px_max)
					&& (py_min <= py && py <= py_max);
		}
		return false;
	}