Java 单击按钮将显示一个新的Jpanel

Java 单击按钮将显示一个新的Jpanel,java,swing,Java,Swing,嘿,我正在做一个java项目,我会尝试概括我的问题,这样 我有一个包含jbuttons1到5的jpanelX。所有这些JButton都连接到相同的actionlistener和相同的ActionPerformed方法。我还将单击按钮的源代码保存到一个全局字符串变量中 我还有另一个问题。JpanelY包含字符串数组 我想将这两种行为联系起来: 用户单击JpanelX上的按钮1 显示的是JpanelY而不是JpanelX。aka用户被带到JpanelY JpanelY中的字符串数组将根据单击的Jb

嘿,我正在做一个java项目,我会尝试概括我的问题,这样

我有一个包含jbuttons1到5的jpanelX。所有这些JButton都连接到相同的actionlistener和相同的ActionPerformed方法。我还将单击按钮的源代码保存到一个全局字符串变量中

我还有另一个问题。JpanelY包含字符串数组

我想将这两种行为联系起来:

  • 用户单击JpanelX上的按钮1

  • 显示的是JpanelY而不是JpanelX。aka用户被带到JpanelY

  • JpanelY中的字符串数组将根据单击的Jbutton包含不同的值。因此,如果用户单击Jbutton1,数组将被赋值{“Value1”、“value1b”、“value1c”}

我尝试了很多东西,但都犯了不同的错误。请帮帮我,非常感谢你
  • 在全局字符串变量中保存任何内容都不是一个好主意。更好的方法是在要显示的面板中调用一个方法,为字符串数组指定正确的值
  • 用户可以通过多种不同的方式“进入”面板。您可以隐藏当前面板并显示新面板(
    setVisible(true/false)
    ),您可以使用允许在同一空间中显示不同面板的布局管理器,您可以更改包含面板的内容。你需要提供你想要的更多细节
  • 根据需要,您可能会得到如下代码:

    button1.addActionListener(ae-> showValues("val1", "val2");
    button2.addActionListener(ae-> showValues("val3", "val4", "val5");
    
    private void showValues(String... values) {
        setVisible(false);
        arrayPanel.setArray(values);
        arrayPanel.setVisible(true);
    }
    

    很高兴看到你已经做了什么。请编辑你的答案,并张贴一个简单的例子来说明你的问题。我认为你的问题太广泛了。如果您询问有关切换JPanel的问题,请查看CardLayout。如果你想解决你的错误,你必须张贴你的代码和你得到的错误。或者更好的做法是,在询问“我做了很多尝试,但都出现了不同的错误”之前,先尝试调试自己的代码。2) 发布一个或多个文件。3) 问一个问题。没有理由粗鲁。如果你想帮忙,那就谢谢你,如果不想,请不要。我不明白为什么计算机科学界的人喜欢把他们的技术肌肉伸向比他们知识少的人。我不能发布我的代码,因为它是为了学校的项目,如果我的代码在网上找到,我的老师会认为它是错误的。计算机科学=傲慢的文化!!