Skip to content

Commit d38d2a9

Browse files
hansonrhansonr
authored andcommitted
fixing menu dynamic add/remove
1 parent 07aa0b9 commit d38d2a9

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

sources/net.sf.j2s.java.core/src/swingjs/plaf/JSMenuItemUI.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33

44
import java.awt.Dimension;
5+
import java.beans.PropertyChangeEvent;
56

67
import javax.swing.JComponent;
78
import javax.swing.JMenuItem;
@@ -48,4 +49,17 @@ public void installUI(JComponent jc) {
4849
"MenuItem.font");
4950
}
5051

52+
@Override
53+
public void propertyChange(PropertyChangeEvent e) {
54+
super.propertyChange(e);
55+
String prop = e.getPropertyName();
56+
if (jc.isVisible()) {
57+
if (prop == "ancestor") {
58+
if (jc.getParent() != null) {
59+
((JSComponentUI) jc.getParent().getUI()).setHTMLElement();
60+
}
61+
}
62+
}
63+
}
64+
5165
}

sources/net.sf.j2s.java.core/src/test/JalviewJSTest.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ public static void main(String[] args)
4040
new JalviewJSTest().doTest();
4141
}
4242

43+
private JMenuItem mb5;
44+
4345
/**
4446
* Put some content in a JFrame and show it
4547
*/
@@ -187,6 +189,11 @@ Container getVisualPaneContent(JMenu menu)
187189
mb4.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
188190
mb4.setHorizontalTextPosition(SwingConstants.RIGHT);
189191

192+
mb5 = new JMenuItem("added");
193+
mb5.setFont(font);
194+
mb5.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
195+
mb5.setHorizontalTextPosition(SwingConstants.RIGHT);
196+
190197

191198
JMenu m1 = new JMenu("left");
192199
JMenu m2 = new JMenu("right");
@@ -227,8 +234,9 @@ private ImageIcon getImage(String name) {
227234
@Override
228235
public void menuSelected(MenuEvent e) {
229236
System.out.println("menuSelected " + e.getSource().toString());
230-
231-
}
237+
JMenu menu = (JMenu) e.getSource();
238+
menu.add(mb5);
239+
}
232240

233241
@Override
234242
public void menuDeselected(MenuEvent e) {

0 commit comments

Comments
 (0)