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

问题描述 投票:0回答:1

我是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)+"]");
}

感谢您的意见和帮助。

java swing jframe jbutton actionlistener
1个回答
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指出我的疏忽。

© www.soinside.com 2019 - 2024. All rights reserved.