1 package charactermanaj.ui.util;
\r
3 import java.awt.Dimension;
\r
4 import java.awt.GraphicsEnvironment;
\r
5 import java.awt.Insets;
\r
6 import java.awt.Point;
\r
7 import java.awt.Rectangle;
\r
8 import java.awt.Window;
\r
10 import javax.swing.JFrame;
\r
13 * ウィンドウの位置を調整するサポートクラス.<br>
\r
17 public final class WindowAdjustLocationSupport {
\r
22 private WindowAdjustLocationSupport() {
\r
27 * ウィンドウの表示位置をメインウィンドウの右側に調整する.<br>
\r
28 * 横位置Xはメインフレームの右側とし、縦位置Yはメインフレームの上位置からのoffset_yを加えた位置とする.<br>
\r
37 * 高さをメインウィンドウにそろえるか?
\r
39 public static void alignRight(JFrame mainWindow, Window window,
\r
40 int offset_y, boolean sameHeight) {
\r
41 // メインウィンドウよりも左側に位置づけする.
\r
42 // 縦位置はメインウィンドウの上端からオフセットを加えたものとする.
\r
43 Point pt = mainWindow.getLocation();
\r
44 Insets insets = mainWindow.getInsets();
\r
45 pt.x += mainWindow.getWidth();
\r
46 pt.y += (offset_y * insets.top);
\r
48 // メインスクリーンサイズを取得する.
\r
49 GraphicsEnvironment genv = GraphicsEnvironment
\r
50 .getLocalGraphicsEnvironment();
\r
51 Rectangle desktopSize = genv.getMaximumWindowBounds(); // メインスクリーンのサイズ(デスクトップ領域のみ)
\r
53 // メインスクリーンサイズを超えた場合は、はみ出た分を移動する.
\r
54 if ((pt.x + window.getWidth()) > desktopSize.width) {
\r
55 pt.x -= ((pt.x + window.getWidth()) - desktopSize.width);
\r
57 if ((pt.y + window.getHeight()) > desktopSize.height) {
\r
58 pt.y -= ((pt.y + window.getHeight()) - desktopSize.height);
\r
61 window.setLocation(pt);
\r
63 // 高さはメインフレームと同じにする.
\r
65 Dimension siz = window.getSize();
\r
66 siz.height = mainWindow.getHeight() - offset_y;
\r
67 window.setSize(siz);
\r