Skip to content

Commit 6f42595

Browse files
committed
Update MenuButton.
1 parent d749096 commit 6f42595

File tree

1 file changed

+23
-25
lines changed

1 file changed

+23
-25
lines changed

sierra/src/main/java/org/httprpc/sierra/MenuButton.java

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ public class MenuButton extends JButton {
3030
private HorizontalAlignment popupHorizontalAlignment = HorizontalAlignment.LEADING;
3131
private VerticalAlignment popupVerticalAlignment = VerticalAlignment.BOTTOM;
3232

33-
private JPopupMenu popupMenu = new JPopupMenu();
34-
3533
private boolean ignorePress = false;
3634

3735
/**
@@ -73,15 +71,32 @@ public MenuButton(Icon icon) {
7371
public MenuButton(String text, Icon icon) {
7472
super(text, icon);
7573

74+
var popupMenu = new JPopupMenu();
75+
76+
popupMenu.addPopupMenuListener(new PopupMenuListener() {
77+
@Override
78+
public void popupMenuWillBecomeVisible(PopupMenuEvent event) {
79+
// No-op
80+
}
81+
82+
@Override
83+
public void popupMenuWillBecomeInvisible(PopupMenuEvent event) {
84+
// No-op
85+
}
86+
87+
@Override
88+
public void popupMenuCanceled(PopupMenuEvent event) {
89+
ignorePress = true;
90+
}
91+
});
92+
93+
setComponentPopupMenu(popupMenu);
94+
7695
setModel(new DefaultButtonModel() {
7796
@Override
7897
public void setPressed(boolean pressed) {
7998
super.setPressed(pressed);
8099

81-
if (popupMenu == null) {
82-
return;
83-
}
84-
85100
if (pressed && !ignorePress) {
86101
var size = getSize();
87102
var popupMenuSize = popupMenu.getPreferredSize();
@@ -112,23 +127,6 @@ public void setRollover(boolean rollover) {
112127
ignorePress = false;
113128
}
114129
});
115-
116-
popupMenu.addPopupMenuListener(new PopupMenuListener() {
117-
@Override
118-
public void popupMenuWillBecomeVisible(PopupMenuEvent event) {
119-
// No-op
120-
}
121-
122-
@Override
123-
public void popupMenuWillBecomeInvisible(PopupMenuEvent event) {
124-
// No-op
125-
}
126-
127-
@Override
128-
public void popupMenuCanceled(PopupMenuEvent event) {
129-
ignorePress = true;
130-
}
131-
});
132130
}
133131

134132
/**
@@ -194,7 +192,7 @@ public Component add(Component component) {
194192
throw new IllegalArgumentException();
195193
}
196194

197-
return popupMenu.add(component);
195+
return getComponentPopupMenu().add(component);
198196
}
199197

200198
/**
@@ -209,7 +207,7 @@ public void remove(Component component) {
209207
throw new IllegalArgumentException();
210208
}
211209

212-
popupMenu.remove(component);
210+
getComponentPopupMenu().remove(component);
213211
}
214212

215213
/**

0 commit comments

Comments
 (0)