画面右下をクリックするとウィンドウを表示する

画面右下数ピクセルをクリックするとウィンドウを表示するサンプルコードです。ランチャー的な何かに使えそうですね。画面右下を右クリックすると終了します。 ものっそいお行儀の悪いコードですがこういうこともできるんだよという参考程度にどうぞ。

画面右下数ピクセルをクリックするとウィンドウを表示するサンプルコードです。ランチャー的な何かに使えそうですね。画面右下を右クリックすると終了します。 ものっそいお行儀の悪いコードですがこういうこともできるんだよという参考程度にどうぞ。

package com.tatesuke.javalab;

import java.awt.Dimension;
import java.awt.MouseInfo;
import java.awt.PointerInfo;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JDialog;
import javax.swing.JFrame;

public class Launcher {

	public static void main(String args[]) throws InterruptedException {
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		Rectangle rect = new Rectangle(screenSize.width - 3, screenSize.height - 3, 3, 3);

		final JFrame frame = new JFrame("テスト");
		frame.setBounds(10, 10, 100, 100);
		frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

		final JDialog dialog = new JDialog();
		dialog.setBounds(rect);
		dialog.setUndecorated(true);
		dialog.setAlwaysOnTop(true);
		dialog.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				switch (e.getButton()) {
				case MouseEvent.BUTTON1:
					frame.setVisible(true);
					break;
				default:
					System.exit(0);
					break;
				}
			}
		});

		PointerInfo pointerInfo;
		while (true) {
			pointerInfo = MouseInfo.getPointerInfo();

			if (rect.contains(pointerInfo.getLocation())) {
				dialog.setVisible(true);
			} else {
				dialog.setVisible(false);
			}

			Thread.sleep(100);
		}
	}

}