メニューの一部として複合 Swing コンポーネントを使用しようとしています。
コンポーネントにはJComboBox
es が含まれており、ユーザーがそれらのいずれかをクリックしてドロップダウンを開くと、ドロップダウンは開きますが、メニューは消えます。JComboBox
をクリックしたときにメニューを開いたままにすることはできますか?
サブクラス化しJMenu
ました。これは対応するコードです:
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
カスタム複合コンポーネントです。のサイズが変更されたときに、pm.pack()
のサイズを適応させるために が呼び出されます。JPopupMenu
filterPanel
ご協力いただきありがとうございます