Java 有两个按钮影响同一标签

Java 有两个按钮影响同一标签,java,swing,jframe,jbutton,actionlistener,Java,Swing,Jframe,Jbutton,Actionlistener,我是Java新手,我正在尝试使用JFrame和ActionListener创建两个按钮,它们将在标签中显示随机生成的数组,并对所述数组进行排序。我已经按下了显示随机生成的数组的按钮,但是我在排序时遇到了问题。是否有方法通过mybutton3访问使用mybutton4创建的数组来完成此操作 这是我为显示10个数字的随机数组的按钮所做的: if(e.getActionCommand().equals("myButton4")) { int[] Array = RandomArray.list

我是Java新手,我正在尝试使用
JFrame
ActionListener
创建两个按钮,它们将在标签中显示随机生成的数组,并对所述数组进行排序。我已经按下了显示随机生成的数组的按钮,但是我在排序时遇到了问题。是否有方法通过
mybutton3
访问使用
mybutton4
创建的数组来完成此操作

这是我为显示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
后显示的数组进行排序

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


感谢您的评论和帮助。

将类中的变量定义为:

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指出我的疏忽。

在每个getActionCommand()中使用一个或多个实例字段?不,请阅读教程-了解本地和实例类型变量/字段之间的差异
int[]Array=RandomArray.list()
是本地定义的变量,其上下文为创建它的
if
语句<代码>数组(顺便说一下,这是一个可怕的名字)需要定义为类的一个实例字段,该类想要使用它,而不需要一个,我们可以提供的就没有太多了,我们可以提供RPlus one来获取MadProgrammer的技巧并将其开发成一个解决方案。
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)+"]");
}