Java 如何使用JMenu项在JFrame中打开新窗口

Java 如何使用JMenu项在JFrame中打开新窗口,java,windows,jframe,Java,Windows,Jframe,我有个问题要问你:如何使用JMenu项在JFrame中打开新窗口,同时关闭上一个窗口。请不要将我发送到JFrame文档,因为它对我没有帮助,如果可以的话,最好向我展示例如代码。我现在有什么?我在应用程序中创建了一个新函数来调用它们,这样就可以打开新窗口。代码如下所示: 在这里,我为JMenu项添加了侦听器。你应该清楚什么 JMenuItem wyswietlbaza = new JMenuItem("Wyswietl baze"); akcja.add(wyswietlbaz

我有个问题要问你:如何使用JMenu项在JFrame中打开新窗口,同时关闭上一个窗口。请不要将我发送到JFrame文档,因为它对我没有帮助,如果可以的话,最好向我展示例如代码。我现在有什么?我在应用程序中创建了一个新函数来调用它们,这样就可以打开新窗口。代码如下所示:

在这里,我为JMenu项添加了侦听器。你应该清楚什么

  JMenuItem wyswietlbaza = new JMenuItem("Wyswietl baze");
        akcja.add(wyswietlbaza);
        wyswietlbaza.addActionListener(this);
//这里我调用一个方法来打开窗口并关闭另一个窗口

public void actionPerformed(ActionEvent e){  

    new BazaDanych().setVisible(true);  
    this.dispose();
    }
只有当我有一个窗口(一些主窗口和另一个窗口,例如window2)时,这种方法才有效。当我有3个窗口时,我的代码停止正常工作,即使我创建了另一个函数,如下所示:

 public void actionPerformed1(ActionEvent e){  

        new ZmienBaza().setVisible(true);  
        this.dispose();
      } 
我的问题:如何为它们添加其他窗口和侦听器?我只想创建几个应该由JMenu项打开并同时关闭的窗口(第一个关闭第二个打开),但现在我的侦听器只打开第二个窗口,即使我按下JMenu项“openwindow1”。
你有什么想法吗?

你应该给每个
JMenuItem
添加一个不同的
ActionListener

比如:


1) 请不要忘记在问题中添加“?”!有些人在页面中搜索“?”,如果“问题”中不存在,则直接转到行中的下一个(实际)问题。2) 为了更快地获得更好的帮助,请发布一个。3) 好的,我试试这个谢谢。也许你误解了我。我想在打开另一个窗口时关闭窗口,就像我写的那样。我的代码可以工作,但只适用于两个窗口(主窗口和另一个窗口)。添加第三个窗口时,即使单击“第二个打开”,JMenu项也会打开第三个窗口。我觉得这个(词)有点不对劲。好的,我把它粘贴在我的代码上,它的工作方式和我的代码相同。当我按下打开窗口2时,它会打开窗口3。好的,我想我现在明白你的问题了。您有多少个
JMenuItem
s?每个人都应该打开不同的窗口吗?是否只有一个,并且每次都会打开不同的窗口?你想怎么用?我有五个菜单项。在我的另一个代码中,每一项都会打开另一个窗口(但不要关闭上一个窗口),在这里,我希望执行相同的操作并关闭上一个窗口。我想这样做:JMenu项打开窗口(项始终打开同一窗口,例如按钮1打开窗口1,按钮2打开窗口2等)。当我打开另一个项目时,我希望在实际打开时关闭此项目。好的,您需要向每个
JMenuItem
添加不同的
ActionListener
,就像在我更新的答案中一样。好的,谢谢,我将尝试此操作。非常感谢你的工作。我真的很高兴。我花了三天时间寻找答案。真的谢谢你。
wyswietlbaza.addActionListener(new ActionListener() {

    // If the JMenuItem "Wyswietl baze" is clicked, this action will happen
    @Override
    public void actionPerformed(ActionEvent e) {
        new BazaDanych().setVisible(true);  
        YourClassName.this.dispose();
    }

};