【问题标题】:Why do I need an identifier for my for loop when the variables are already declared? [closed]当变量已经声明时,为什么我的 for 循环需要一个标识符? [关闭]
【发布时间】:2014-09-07 13:52:06
【问题描述】:

谁能告诉我我的for loop 有什么问题?我一直在花费大量时间反复试验并在互联网上进行研究,但我仍然找不到解决方案。它一直说预期的标识符找不到符号。请帮忙谢谢!

package imageviewer;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import java.util.Vector;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class ImageViewer extends JPanel implements ActionListener {

    JPanel bottomPanel;
    JLabel imageLabel;
    JButton previousBtn;
    JButton nxtBtn;

    ImageViewer()
    {
        imageLabel = new JLabel("Image Display");
        imageLabel.setBackground(Color.WHITE);
        imageLabel.setOpaque(true);
        add(imageLabel);

        previousBtn = new JButton("Previous");
        previousBtn.addActionListener(this);
        add(previousBtn);

        nxtBtn = new JButton("Next");
        nxtBtn.addActionListener(this);
        add(nxtBtn);
    }

    String userInput = JOptionPane.showInputDialog("Please input name of first image file");
    Scanner myScanner = new Scanner(userInput);
    String fileDetail = myScanner.next();
    String[] arr = fileDetail.split("\\.");

    String fileName = arr[0].replaceAll("[0-9.]", "");
    String fileNumber = arr[0].replaceAll("[^0-9]", "");
    String fileFormat = arr[1];

    int num = Integer.parseInt(fileNumber);

    String totalImage = JOptionPane.showInputDialog("Please enter the number of images in total");
    Scanner secondScanner = new Scanner(totalImage);
    int numberInput = secondScanner.nextInt();

    ImageIcon imageGraphic = new ImageIcon(fileName + fileNumber + "." + fileFormat);

    Vector <String> imageDetail = new Vector <String>();
    int total = (num + numberInput);

    for(int i = num; i < total; i++)
    {
    }


public void actionPerformed(ActionEvent e)
    {
    }

}

【问题讨论】:

    标签: java swing for-loop symbols


    【解决方案1】:

    它的错误在于它是在开放空间中声明的,在任何方法、构造函数、静态块等之外,并且您根本不能在该区域中拥有 for 循环或任何类似的控制结构。解决方案:把它放在它所属的地方,无论是方法还是构造函数,你的选择。

    事实上,您的很多行看起来都不属于“开放国家”,包括调用 JOptionPane 的行,以及在其下方使用用户输入的行,我想知道其中的一些这些行属于此类。这个类应该只专注于一个单一的职责——在这里查看图像,仅此而已。您应该重新考虑一下您的程序设计。

    例如,您似乎希望这个类显示一组图像,这就是它应该做的。如果它是我的类,我会给它一些方法,允许其他类给它一个 ImageIcons 列表,然后所有这个类在按钮按下时滚动图像。任何询问用户从哪里开始寻找图像的代码都应该在别处而不是在这个类中。

    【讨论】:

    • 非常感谢先生!你一直很有帮助。我将不得不按照你的建议重新设计和设计。我是初学者,不知何故我一直感到困惑等等。:S
    【解决方案2】:

    将你的 for 循环放在你拥有它的地方,实际上没有办法访问和使用它。通过将它放在构造函数或方法中,您可以实际使用循环。

    【讨论】:

      【解决方案3】:

      您的循环当前是参数所在的位置。它需要在一个可执行的代码块中,即。某种构造函数或方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-25
        • 1970-01-01
        • 2011-09-02
        • 1970-01-01
        • 2021-11-18
        • 1970-01-01
        • 2018-10-13
        相关资源
        最近更新 更多