打开Jmenuitem Java的窗户流行
题
我有一个 JMenu
与 JMenuItem
, ,当我点击此时,我需要打开一个 JFrame
或窗口,换句话说,内部的组件 JButton
, JTextField
,...
我怎样才能做到这一点 ?
解决方案
您可以创建 JFrame
以相同的方式创建初始 JFrame
, ,并打电话
setVisible(true);
在里面 ActionListener
你的 JMenuItem
在单击菜单时使其可见。
如果您希望它是模态(除非关闭新窗口,否则无法访问原始帧) JDialog
而是设置 modal
在构造函数中为真或致电 setModal(true)
.
其他提示
我在答案中为良好的代码视图写:
如果我使用jframe,我会收到此错误:“ java.lang.illegalgumentException:将窗口添加到容器中”。
这是我的代码在Action Performed方法中:
PopupFactory factory = PopupFactory.getSharedInstance();
JFrame frame = new JFrame();
frame.setLayout(null);
frame.setBounds(428, 99, 185, 155);
final JButton button = new JButton();
button.setText("Button");
button.setBounds(10, 93, 111, 25);
frame.getContentPane().add(button);
final Popup popup = factory.getPopup(null, frame, 200, 200);
popup.show();
您正在混淆“弹出窗口”和“ Windows”。
当您右键单击某些对象时,通常会显示弹出窗口。弹出窗口将显示可以在该对象上执行的操作列表。例如,文本字段可能具有“剪切”,“复制”和“粘贴”。阅读《秋千教程》中的部分提出弹出菜单“ 了解更多信息。
窗口用于在Jframe或JDialog中显示其他摆动组件。
鉴于您是从菜单项中调用此操作的,我认为您可能想创建并显示模式JDialog,而不是Jframe或弹出窗口。
另外,在阅读教程时,请阅读有关“使用布局经理”的部分。使用空布局不是创建对话框的最佳方法。
不隶属于 StackOverflow