Java Swing-在子菜单中显示表格

Java Swing-在子菜单中显示表格,swing,Swing,我有一个菜单,上面显示 项目1 项目2 项目3 等等。单击Item1应该会显示一个包含两列的表 我试着在下面展示一个标签。但是标签会显示在屏幕的某个地方,我希望它是menuitem1下的一个子菜单 JMenu主菜单=新JMenu(“主菜单头”) JMenu menuItem1=新JMenu(新的SomeClassExtendingAbstractAction(“menuItem1”) 公共类SomeClassExtendingAbstractAction扩展AbstractAction{ p

我有一个菜单,上面显示

  • 项目1
  • 项目2
  • 项目3
等等。单击Item1应该会显示一个包含两列的表

我试着在下面展示一个标签。但是标签会显示在屏幕的某个地方,我希望它是menuitem1下的一个子菜单

JMenu主菜单=新JMenu(“主菜单头”)

JMenu menuItem1=新JMenu(新的SomeClassExtendingAbstractAction(“menuItem1”)

公共类SomeClassExtendingAbstractAction扩展AbstractAction{

public SomeClassExtendingAbstractAction(String displayText) {
    super(displayText);
}

public void actionPerformed(ActionEvent event) {
    try {
        SubMenuDialog.showDialog(parent);
    } catch (Throwable e) {

    }
}
}

公共类子菜单对话框扩展JDialog{

 public SubMenuDialog(JFrame parent) {
   super();
   initialize();
 }

private void initialize() {
    JLabel label = new JLabel();
    label.setText("This is test submenu");
    getContentPane().add(label);
}

public static void showDialog(JFrame parent) {
    SubMenuDialog subMenuDialog = new SubMenuDialog(parent);
    subMenuDialog.pack();
    subMenuDialog.setVisible(true);
}

}

如果我理解正确,您要做的是在弹出的子菜单中显示任意组件。显然,您不能使用
JDialog
,因为它会给您一个,
JDialog

您的
子菜单对话框#showDialog
可以创建
jpopmpmenu
,向其中添加任何组件(例如
JScrollPane
包含表格,或
JPanel
带标签),并将其显示在正常子菜单的位置

但是,通常在弹出窗口中显示复杂的内容不是一个好主意,因为弹出窗口太容易丢失,而且弹出窗口中的组件可能会出现焦点问题


我建议您咨询UI设计师,以获得您想要实现的功能的最佳UI表示。

我希望我的子菜单类似于浏览器的视图-工具栏-标准工具栏/导航工具栏等。在这种情况下,我仍然可以使用JPopupMenu吗?哪种浏览器?我在Firefox3.6、IE8或Chrome6中没有看到这种组合。Firefox视图-工具栏只显示一组复选框菜单项,这就是
JCheckBoxMenuItem
的用途。我希望我的工具栏看起来像没有复选框的视图工具栏。相反,我希望它是一个JTable。我尝试使用JMenuItem而不是Action/Jdialog。无法确定如何将Jtable添加到JMenuItem