我是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)+"]");
}
感谢您的意见和帮助。
将类中的变量定义为:
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指出我的疏忽。