Swing/PopupMenuSeparator のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/PopupMenuSeparator へ行く。
- 1 (2024-05-27 (月) 01:54:19)
- category: swing folder: PopupMenuSeparator title: JPopupMenu用JSeparatorの高さを変更する tags: [JPopupMenu, JSeparator, LookAndFeel] author: aterai pubdate: 2024-05-27T01:52:12+09:00 description: JPopupMenuに追加するJSeparatorの高さや長さを変更します。 image: https://drive.google.com/uc?id=133kEDpTOr25bBa3L5VQrmfzaVlacitZs
概要
JPopupMenuに追加するJSeparatorの高さや長さを変更します。
Screenshot
Advertisement
サンプルコード
popup.add("↓ addSeparator()");
popup.addSeparator();
popup.add("↓ add(new JPopupMenu.Separator()");
popup.add(new JPopupMenu.Separator() {
@Override public Dimension getPreferredSize() {
Dimension d = super.getPreferredSize();
d.height = 4;
return d;
}
});
popup.add("↓ JPopupMenu.Separator(): font size 16f");
popup.add(new JPopupMenu.Separator() {
@Override public Font getFont() {
return super.getFont().deriveFont(16f);
}
});
popup.add("↓ PopupMenuSeparator.contentMargins");
popup.add(new JPopupMenu.Separator() {
@Override public void updateUI() {
super.updateUI();
UIDefaults d = new UIDefaults();
d.put("PopupMenuSeparator.contentMargins", new Insets(3, 0, 3, 0));
putClientProperty("Nimbus.Overrides", d);
putClientProperty("Nimbus.Overrides.InheritDefaults", true);
}
});
View in GitHub: Java, Kotlin解説
add(new JSeparator()
new JSeparator()
でセパレータを作成してJPopupMenu
に追加WindowsLookAndFeel
でもJSeparator
の長さはJPopupMenu
の幅まで描画される
JSeparator(): height = 8
new JSeparator()
でセパレータを作成してJPopupMenu
に追加JSeparator#getPreferredSize()
をオーバーライドしてその高さを8px
に拡大
addSeparator()
JPopupMenu#addSeparator()
でJPopupMenu
固有のセパレータを追加JPopupMenu#add(new JPopupMenu.Separator())
と同等WindowsLookAndFeel
の場合JSeparator
の長さはメニューアイコンの幅だけ短く描画される
JPopupMenu.Separator(): height = 4
new JPopupMenu.Separator()
でJPopupMenu
固有のセパレータを作成してJPopupMenu
に追加JPopupMenu.Separator#getPreferredSize()
をオーバーライドしてその高さを4px
に縮小
JPopupMenu.Separator(): font size 16f
new JPopupMenu.Separator()
でJPopupMenu
固有のセパレータを作成してJPopupMenu
に追加JPopupMenu.Separator#getFont()
をオーバーライドしてフォントサイズを16pt
に拡大WindowsLookAndFeel
の場合JPopupMenu
固有のセパレータの推奨サイズはfontHeight / 2 + 2
で計算されるのでセパレータの高さが変化するcom.sun.java.swing.plaf.windows.WindowsPopupMenuSeparatorUI#getPreferredSize()
を参照
PopupMenuSeparator.contentMargins
NimbusLookAndFeel
の場合PopupMenuSeparator.contentMargins
でJPopupMenu
固有のセパレータのマージンを変更可能- このサンプルでは
new Insets(3, 0, 3, 0)
で上下3px
の余白を追加している