Swing/FloatingToolBarStartingLocation のバックアップ(No.5)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/FloatingToolBarStartingLocation へ行く。
- 1 (2017-02-03 (金) 16:43:19)
- 2 (2017-02-20 (月) 19:40:38)
- 3 (2017-02-28 (火) 17:51:53)
- 4 (2017-04-07 (金) 13:51:51)
- 5 (2017-12-20 (水) 16:36:54)
- 6 (2018-02-15 (木) 14:23:42)
- 7 (2019-08-20 (火) 19:05:18)
- 8 (2021-04-16 (金) 11:58:41)
- 9 (2025-01-03 (金) 08:57:02)
- 10 (2025-01-03 (金) 09:01:23)
- 11 (2025-01-03 (金) 09:02:38)
- 12 (2025-01-03 (金) 09:03:21)
- 13 (2025-01-03 (金) 09:04:02)
- category: swing folder: FloatingToolBarStartingLocation title: JToolBarが起動時に指定した位置でフローティング状態になるよう設定する tags: [JToolBar, Window] author: aterai pubdate: 2017-01-23T00:05:35+09:00 description: アプリケーションを起動した時、JToolBarが指定した位置にフローティング状態で配置されるように設定します。 image: https://drive.google.com/uc?export=view&id=1PLQTp9ryyxO5K8UZUj2gL_nn_wp4x66XQA
概要
アプリケーションを起動した時、JToolBar
が指定した位置にフローティング状態で配置されるように設定します。
Screenshot

Advertisement
サンプルコード
EventQueue.invokeLater(() -> {
Container w = getTopLevelAncestor();
if (w instanceof Window) {
Point pt = ((Window) w).getLocation();
BasicToolBarUI ui = (BasicToolBarUI) toolbar.getUI();
ui.setFloatingLocation(pt.x + 120, pt.y + 160);
ui.setFloating(true, null);
}
});
View in GitHub: Java, Kotlin解説
上記のサンプルでは、アプリケーションを起動した時点でJToolBar
をフローティング状態にし、その位置を指定しています。
BasicToolBarUI#setFloating(boolean, Point)
メソッドの引数Point
は、引数boolean
がfalse
の場合のみBorderLayout
の東西南北どの位置にドックするかを調査するために使用される- 参考: java - Setting a specific location for a floating JToolBar - Stack Overflow
true
でフローティング状態に移行する場合、引数Point
は使用されないので、何を指定しても無効- このため、
JToolBar
をフローティング状態に移行する前に、BasicToolBarUI#setFloatingLocation(...)
でその位置を指定しておく必要がある
- フローティング状態の
JToolBar
から親Window
を取得し、直接Window#setLocation(...)
でその位置を指定する方法もある//ドッキング元のメインWindow Window w = (Window) getTopLevelAncestor(); Point pt = w.getLocation(); //フローティング状態に移行 ((BasicToolBarUI) toolbar.getUI()).setFloating(true, null); //JToolBar(フローティング状態)のWindow Container c = toolbar.getTopLevelAncestor(); if (c instanceof Window) { ((Window) c).setLocation(pt.x + 120, pt.y + 160); }
参考リンク
- java - Setting a specific location for a floating JToolBar - Stack Overflow
- JToolBarをドラッグによる移動は可能だが分離は不可に設定する
- BasicToolBarUI#setFloatingLocation(...) (Java Platform SE 8)
- 現在の
BasicToolBarUI#setFloatingLocation(...)
やsetFloating(...)
のドキュメントは空なので、詳細が知りたい場合は、ソースコードを参照する必要がある
- 現在の