我试图制作一个菜单项,当我单击它时,它将使JInternalFrame可见。我创建了JDesktopPane并将JInternalFrame添加到其中。

JInternalFrame neworder_jif;

public MainFrame() {
    Login login = new Login(this, true);
    login.setVisible(true);
    initComponents();

    //NEW ORDER JIF
    desk.add(neworder_jif = new NewOrder());
    neworder_jif.pack();
    neworder_jif.setVisible(true);
}


如您所见,使用此代码,内部框架正确显示,但是我希望它开始不可见,但是当我

neworder_jif.setVisible(false);


在构造函数上,并在单击鼠标时创建动作侦听器

private void new_order_menuMouseClicked(java.awt.event.MouseEvent evt) {
    neworder_jif.setVisible(true);
}


它不起作用,我单击菜单项,但没有任何反应。

回答

对于那些在此代码中查找错误的人,我将解释如何修复该错误:将事件从使用NetBeans设计编辑器创建的MouseButtonClicked事件更改为MouseButtonReleased。

最佳答案

JMenuItem对象可以具有动作侦听器:

JMenuItem item = new JMenuItem();
item.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        neworder_jif.setVisible(true);
    }
});

关于java - 使用JMenuItem打开JInternalFrame,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40450267/

10-10 07:32