Java 无法更新图像“JLabel设置图标”

Java 无法更新图像“JLabel设置图标”,java,swing,Java,Swing,!! 我想在读取数组时更新图像的顺序…所以我尝试将图像的目标作为变量,然后在需要更改顺序时更改变量,但这不起作用 JLabel no3 = new JLabel(); no3.setIcon(new ImageIcon(three)); panel.add(no3); frame.getContentPane().add(panel); frame.validate(); JLabel no4 = new JLabel(); no4.set

!! 我想在读取数组时更新图像的顺序…所以我尝试将图像的目标作为变量,然后在需要更改顺序时更改变量,但这不起作用

   JLabel no3 = new JLabel();
    no3.setIcon(new ImageIcon(three));
    panel.add(no3);
    frame.getContentPane().add(panel);
    frame.validate();

    JLabel no4 = new JLabel();
    no4.setIcon(new ImageIcon(four));
    panel.add(no4);
    frame.getContentPane().add(panel);
    frame.validate();


    JLabel no5 = new JLabel();
    no5.setIcon(new ImageIcon(five));
    panel.add(no5);
    frame.getContentPane().add(panel);
    frame.validate();
当我更新图像目标变量三、四、五等时,点击另一个按钮后,图像不会改变

JButton btnNewButton = new JButton("Solve");
    btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            String text=textField.getText();
            int[] arr = Arrays.stream(text.split(" ")).map(String::trim).mapToInt(Integer::parseInt).toArray();
            int[] solve= new int[9];
            for(int i=0; i<9;i++)
            {
                solve[i]=arr[i];
                 switch (i) {
                    case 0:  one="C:\\Users\\Mostafa\\Downloads\\Compressed\\cut_images_LVx5IFG8ujN\\image_part_00"+solve[i]+".jpg";
                             break;
                    case 1:  two="C:\\Users\\Mostafa\\Downloads\\Compressed\\cut_images_LVx5IFG8ujN\\image_part_00"+solve[i]+".jpg";
                             break;
                    case 2:  three="C:\\Users\\Mostafa\\Downloads\\Compressed\\cut_images_LVx5IFG8ujN\\image_part_00"+solve[i]+".jpg";
                             break;
                    case 3:  four="C:\\Users\\Mostafa\\Downloads\\Compressed\\cut_images_LVx5IFG8ujN\\image_part_00"+solve[i]+".jpg";
                             break;
                    case 4:  five="C:\\Users\\Mostafa\\Downloads\\Compressed\\cut_images_LVx5IFG8ujN\\image_part_00"+solve[i]+".jpg";
                             break;
                    case 5:  six="C:\\Users\\Mostafa\\Downloads\\Compressed\\cut_images_LVx5IFG8ujN\\image_part_00"+solve[i]+".jpg";
                             break;
                    case 6:  seven="C:\\Users\\Mostafa\\Downloads\\Compressed\\cut_images_LVx5IFG8ujN\\image_part_00"+solve[i]+".jpg";
                             break;
                    case 7:  eight="C:\\Users\\Mostafa\\Downloads\\Compressed\\cut_images_LVx5IFG8ujN\\image_part_00"+solve[i]+".jpg";
                             break;
                    default: nine="C:\\Users\\Mostafa\\Downloads\\Compressed\\cut_images_LVx5IFG8ujN\\image_part_00"+solve[i]+".jpg";
                             break;
                }
            }
所以我尝试将图像的目的地作为变量,然后在需要更改顺序时更改变量,但这不起作用

   JLabel no3 = new JLabel();
    no3.setIcon(new ImageIcon(three));
    panel.add(no3);
    frame.getContentPane().add(panel);
    frame.validate();

    JLabel no4 = new JLabel();
    no4.setIcon(new ImageIcon(four));
    panel.add(no4);
    frame.getContentPane().add(panel);
    frame.validate();


    JLabel no5 = new JLabel();
    no5.setIcon(new ImageIcon(five));
    panel.add(no5);
    frame.getContentPane().add(panel);
    frame.validate();
那当然不行。图标不知道您更改了变量,标签也不知道您更改了图标

因此,代码应该是:

//case 0:  one="C:\\Users\\Mostafa\\....";
Icon icon = new ImageIcon("the file name");
no0.setIcon( icon )