点击按钮会显示新的Jpanel

时间:2017-11-07 04:05:59

标签: java swing

嘿,我正在研究一个java项目,我会尝试将我的问题归结为......

我有一个包含jbuttons1到5的jpanelX。所有这些jbuttons连接到同一个actionlistener和相同的动作执行方法。我还将点击按钮的源保存到全局字符串变量中。

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

我想用这种行为连接两者:

  • 用户点击JpanelX上的button1

  • 显示JpanelY而不是JpanelX。又称用户被带到JpanelY

  • JpanelY中的字符串数组将包含基于单击的Jbutton的不同值。因此,如果用户单击Jbutton1,将为数组分配值{" Value1","值1b"," value1c"}

我尝试了很多东西并且遇到了不同的错误。请帮帮我,非常感谢你

1 个答案:

答案 0 :(得分:0)

  • 在全局字符串变量中保存任何内容都是一个坏主意。更好的方法是在您希望显示的面板中调用一个方法,为您的字符串数组分配正确的值。
  • 用户可以通过多种不同的方式“参与”面板。您可以隐藏当前面板并显示新面板(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);
}