Swingでカーソルを砂時計にする

カーソルを砂時計にし、画面操作を出来ないようにする方法

砂時計を制御するクラス

public class LockGlassPane extends JPanel {

	@Override
	public void updateUI() {
		super.updateUI();
		setOpaque(false);
		setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
	}

	@Override
	public void setVisible(boolean isVisible) {
		boolean oldVisible = isVisible();
		super.setVisible(isVisible);

		JRootPane rootPane = getRootPane();
		if (rootPane != null) {
			if (isVisible() != oldVisible) {
			rootPane.getLayeredPane().setVisible(!isVisible);
			}
		}
	}

	@Override
	protected void paintComponent(Graphics g) {

		JRootPane rootPane = getRootPane();
		if (rootPane != null) {
			rootPane.getLayeredPane().print(g);
		}
		super.paintComponent(g);
	}
}

実装部分

// 砂時計用のパネル設定
Component gp = new LockGlassPane();
gp.setVisible(false);
getRootPane().setGlassPane(gp);

// 砂時計にする
flame.getRootPane().getGlassPane().setVisible(true);
Component c = (Component) e.getSource();
c.setEnabled(false);

// 砂時計を元に戻す
flame.getRootPane().getGlassPane().setVisible(false);
c.setEnabled(true);
スポンサーリンク
google 6948682462
google 6948682462

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
google 6948682462