Java 当变量已经声明时,为什么我需要for循环的标识符?
有人能告诉我循环的Java 当变量已经声明时,为什么我需要for循环的标识符?,java,swing,for-loop,symbols,Java,Swing,For Loop,Symbols,有人能告诉我循环的有什么问题吗?我花了很多时间在互联网上反复试验和研究,但仍然找不到解决办法。它一直说预期的标识符找不到符号。请帮忙,谢谢 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 java
有什么问题吗?我花了很多时间在互联网上反复试验和研究,但仍然找不到解决办法。它一直说预期的标识符找不到符号。请帮忙,谢谢
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)
{
}
}
packageimageviewer;
导入java.awt.Color;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.util.Scanner;
导入java.util.Vector;
导入javax.swing.ImageIcon;
导入javax.swing.JButton;
导入javax.swing.JLabel;
导入javax.swing.JOptionPane;
导入javax.swing.JPanel;
公共类ImageViewer扩展JPanel实现ActionListener{
JPanel底板;
JLabel图像标签;
JButton-previousBtn;
JButton-nxtBtn;
ImageViewer()
{
imageLabel=新的JLabel(“图像显示”);
imageLabel.setBackground(颜色:白色);
imageLabel.set不透明(true);
添加(图像标签);
previousBtn=新按钮(“先前”);
previousBtn.addActionListener(此);
添加(以前的BTN);
nxtBtn=新的JButton(“下一步”);
nxtBtn.addActionListener(此);
添加(nxtBtn);
}
字符串userInput=JOptionPane.showInputDialog(“请输入第一个图像文件的名称”);
扫描器myScanner=新扫描器(用户输入);
字符串fileDetail=myScanner.next();
字符串[]arr=fileDetail.split(“\\”);
字符串文件名=arr[0].replaceAll(“[0-9.]”,“”);
字符串fileNumber=arr[0].replaceAll([^0-9],”);
字符串fileFormat=arr[1];
int num=Integer.parseInt(文件号);
字符串totalImage=JOptionPane.showInputDialog(“请输入图像总数”);
扫描仪secondScanner=新扫描仪(totalImage);
int numberInput=secondScanner.nextInt();
ImageIcon imageGraphic=新的ImageIcon(文件名+文件号+文件格式);
Vector imageDetail=新向量();
整数总计=(num+numberInput);
for(int i=num;i
它的错误在于它是在开放空间中声明的,不在任何方法、构造函数、静态块等的范围内,并且在这个区域中不能有for循环或任何类似的控制结构。解决方案:把它放在它所属的地方,不管是方法还是构造函数,都是你的选择
事实上,您的许多行看起来不属于“开放国家”,包括调用JOptionPane的行,以及在其下方使用用户输入的行,我想知道其中一些行属于此类。这个课程应该只专注于一个单一的职责——在这里查看图像,就是这样。你应该重新考虑一下你的程序设计
例如,您似乎希望该类显示一组图像,因此它应该这样做。如果它是我的类,我会给它一些方法,允许其他类给它一个ImageIcons列表,然后所有这些类在按钮按下时滚动图像。任何询问用户从何处开始查找图像的代码都可能位于其他位置,而不在此类中。您的循环当前位于参数所在的位置。它需要在一个可执行的代码块中,即某种构造函数或方法 如果将for循环放在您拥有它的地方,则实际上无法访问和使用它。通过将其放入构造函数或方法中,您就有了实际使用循环的方法。非常感谢,先生!你帮了大忙。我将不得不像你建议的那样重新设计。我是一个初学者,不知怎么的,我总是感到困惑