有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我是Java新手,我正在尝试使用JFrameActionListener创建两个按钮,它们将在标签中显示随机生成的数组,并对所述数组进行排序。我已经按下了显示随机生成的数组的按钮,但是我在排序时遇到了问题。有没有办法用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后显示的数组进行排序

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

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) 个答案

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

    感谢程序员指出我的疏忽