【发布时间】:2011-07-02 19:52:35
【问题描述】:
我正在尝试使用复合 Swing 组件作为菜单的一部分。
除了一个细节之外,一切都很好:该组件包含JComboBoxes,每当用户单击其中一个以打开其下拉菜单时,下拉菜单就会打开,但菜单会消失。单击JComboBox 时是否可以使菜单保持打开状态?
我对@987654323@ 进行了子分类。这是对应的代码:
public class FilterMenu extends JMenu {
public FilterMenu(String name) {
super(name);
final JPopupMenu pm = this.getPopupMenu();
final FilterPanel filterPanel = new FilterPanel(pm) {
@Override
public void updateTree() {
super.updateTree();
pm.pack();
}
};
pm.add(filterPanel);
}
}
FilterPanel 是自定义复合组件。当filterPanel 的大小发生变化时,pm.pack() 被调用以适应JPopupMenu 的大小。
感谢您的帮助
【问题讨论】:
-
子菜单不是比 JComboBox 更合适吗?
-
@Max 同意@Jesse Barnum subMenuItem +1
标签: java swing jcombobox jmenu