Swing/PopupMenuSeparator のバックアップ(No.6)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/PopupMenuSeparator へ行く。
- 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
Summary
JPopupMenuに追加するJSeparatorの高さや長さを変更します。
Screenshot

Advertisement
Source Code Examples
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, KotlinExplanation
add(new JSeparator()new JSeparator()でセパレータを作成してJPopupMenuに追加WindowsLookAndFeelでもJSeparatorの長さはJPopupMenuの幅まで描画される
JSeparator(): height = 8new JSeparator()でセパレータを作成してJPopupMenuに追加JSeparator#getPreferredSize()をオーバーライドしてその高さを8pxに拡大
addSeparator()JPopupMenu#addSeparator()でJPopupMenu固有のセパレータを追加JPopupMenu#add(new JPopupMenu.Separator())と同等WindowsLookAndFeelの場合JSeparatorの長さはメニューアイコンの幅だけ短く描画される
JPopupMenu.Separator(): height = 4new JPopupMenu.Separator()でJPopupMenu固有のセパレータを作成してJPopupMenuに追加JPopupMenu.Separator#getPreferredSize()をオーバーライドしてその高さを4pxに縮小
JPopupMenu.Separator(): font size 16fnew JPopupMenu.Separator()でJPopupMenu固有のセパレータを作成してJPopupMenuに追加JPopupMenu.Separator#getFont()をオーバーライドしてフォントサイズを16ptに拡大WindowsLookAndFeelの場合JPopupMenu固有のセパレータの推奨サイズはfontHeight / 2 + 2で計算されるのでセパレータの高さが変化するcom.sun.java.swing.plaf.windows.WindowsPopupMenuSeparatorUI#getPreferredSize()を参照
PopupMenuSeparator.contentMarginsNimbusLookAndFeelの場合PopupMenuSeparator.contentMarginsでJPopupMenu固有のセパレータのマージンを変更可能- このサンプルでは
new Insets(3, 0, 3, 0)で上下3pxの余白を追加している