From de8d1d8b07b2f41383dc2d1c247745598ec713cb Mon Sep 17 00:00:00 2001 From: nathan Date: Wed, 28 Sep 2016 18:35:25 +0200 Subject: [PATCH] Fixed swing border/margins for menus/entries --- .../systemTray/swing/SwingMenuEntryItem.java | 17 ++++++++++++++++- .../swing/SwingSystemTrayMenuPopup.java | 4 +++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/dorkbox/systemTray/swing/SwingMenuEntryItem.java b/src/dorkbox/systemTray/swing/SwingMenuEntryItem.java index ac19aff..d62c4f0 100644 --- a/src/dorkbox/systemTray/swing/SwingMenuEntryItem.java +++ b/src/dorkbox/systemTray/swing/SwingMenuEntryItem.java @@ -16,6 +16,7 @@ package dorkbox.systemTray.swing; +import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -28,6 +29,20 @@ import dorkbox.util.SwingUtil; public class SwingMenuEntryItem extends SwingMenuEntry { + private static + class AdjustedJMenuItem extends JMenuItem { + @Override + public + Insets getMargin() { + Insets margin = super.getMargin(); + if (margin != null) { + margin.set(2, -2, 2, 4); + } + return margin; + } + } + + private final ActionListener swingCallback; private volatile boolean hasLegitIcon = false; @@ -36,7 +51,7 @@ class SwingMenuEntryItem extends SwingMenuEntry { public // this is ALWAYS called on the EDT. SwingMenuEntryItem(final SystemTrayMenuAction callback, final SwingSystemTray systemTray) { - super(new JMenuItem(), systemTray); + super(new AdjustedJMenuItem(), systemTray); this.callback = callback; swingCallback = new ActionListener() { diff --git a/src/dorkbox/systemTray/swing/SwingSystemTrayMenuPopup.java b/src/dorkbox/systemTray/swing/SwingSystemTrayMenuPopup.java index 2cb129b..96602c6 100644 --- a/src/dorkbox/systemTray/swing/SwingSystemTrayMenuPopup.java +++ b/src/dorkbox/systemTray/swing/SwingSystemTrayMenuPopup.java @@ -22,6 +22,7 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JPopupMenu; +import javax.swing.border.EmptyBorder; import dorkbox.util.DelayTimer; import dorkbox.util.Property; @@ -50,7 +51,8 @@ class SwingSystemTrayMenuPopup extends JPopupMenu { SwingSystemTrayMenuPopup() { super(); setFocusable(true); -// setBorder(new BorderUIResource.EmptyBorderUIResource(0,0,0,0)); +// setBorder(new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0)); // borderUI resource border type will get changed! + setBorder(new EmptyBorder(1, 1, 1, 1)); this.timer = new DelayTimer("PopupMenuHider", true, new Runnable() {