有人可以告诉我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)
{
}
}
答案 0 :(得分:5)
它有什么问题,它在开放空间中声明,在任何方法,构造函数,静态块等之外,并且你根本不能在这个区域中有for循环或任何类似的控制结构。解决方案:将它放在它所属的位置,无论是方法还是构造函数,都可以选择。
事实上,你的很多行看起来都不属于“开放国家”,包括调用JOptionPane的行,以及使用它下面的用户输入的行,我想知道一些这些行属于这个类。课程应该只关注一个单一的责任 - 在这里查看图像,就是这样。你应该重新考虑你的程序设计。
例如,您似乎希望此类显示图像集合,这就是它应该做的事情。如果它是我的类,我会给它一些方法,允许其他类给它一个ImageIcons列表,然后所有这个类在按钮按下滚动图像。任何询问用户从哪里开始寻找图像的代码都应该在其他地方,而不是在这个类中。
答案 1 :(得分:2)
您的循环当前是参数所在的位置。它需要在可执行的代码块中,即。某种构造函数或方法。
答案 2 :(得分:1)
通过将你的for循环放在你拥有它的地方,实际上没有办法访问和使用它。通过将它放在构造函数或方法中,您可以实际使用循环。