有2个按钮会影响相同的标签

时间:2019-03-02 20:30:17

标签: java swing jframe jbutton actionlistener

我是Java新手,我正在尝试使用JFrameActionListener创建两个按钮,这两个按钮将在标签中显示随机生成的数组,并对所述数组进行排序。我已经按下了将显示随机生成的数组的按钮,但是在对按钮进行排序时遇到了麻烦。是否可以通过mybutton4访问由mybutton3创建的数组来完成此操作?

这是显示10个数字的随机数组的按钮的功能:

if(e.getActionCommand().equals("myButton4"))
{
    int[] Array = RandomArray.list();
    String strArray[] = Arrays.stream(Array).mapToObj(String::valueOf).toArray(String[]::new);
    label.setText("Array: ["+String.join(",", strArray)+"]");
}

如果在button3中使用类似的东西,我可以得到它来输出已排序的数组,但是在单击mybutton4之后,我需要按钮来对显示的数组进行排序。

这是我的排序按钮代码(它仅显示已排序的随机数组):

if(e.getActionCommand().equals("myButton2"))
{
    int[] Array = RandomArray.list();
    Arrays.sort(Array);
    String strArray[] = Arrays.stream(Array).mapToObj(String::valueOf).toArray(String[]::new);
    label.setText("Array: ["+String.join(",", strArray)+"]");
}

感谢您的评论和帮助。

1 个答案:

答案 0 :(得分:1)

在类中将变量定义为:

public int[] getArray;

并相应地修改了每个按钮的getActionCommand语句。现在可以正常工作了。

if(e.getActionCommand().equals("myButton2"))
{
    int[] sortArray = getArray;
    Arrays.sort(sortArray);
    String strArray[] = Arrays.stream(sortArray).mapToObj(String::valueOf).toArray(String[]::new);
    label.setText("Array: ["+String.join(",", strArray)+"]");
}

if(e.getActionCommand().equals("myButton4"))
{
    getArray = RandomArray.list();
    String strArray[] = Arrays.stream(getArray).mapToObj(String::valueOf).toArray(String[]::new);
    label.setText("Array: ["+String.join(",", strArray)+"]");
}

感谢MadProgrammer指出我的疏忽。