我是Java新手,我正在尝试使用JFrame
和ActionListener
创建两个按钮,这两个按钮将在标签中显示随机生成的数组,并对所述数组进行排序。我已经按下了将显示随机生成的数组的按钮,但是在对按钮进行排序时遇到了麻烦。是否可以通过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)+"]");
}
感谢您的评论和帮助。
答案 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指出我的疏忽。