Java调整ImageIcon大小遇语法错误:token“;”处应输入,
错误原因
你遇到的语法报错和图片缩放的代码本身无关,是Java类的语法规则限制:
- 类的作用域下只能定义成员变量、方法、构造器、初始化块、内部类这些结构
- 前三行代码属于「成员变量声明+初始化」的语法,是合法的
- 最后一行
welcomeImage = new ImageIcon(newImage);是纯赋值执行语句,不能直接放在类作用域下,所以编译器会在上一行末尾误判缺少符号,抛出你看到的报错。
修复方案
方案1:用构造方法包裹执行逻辑
import java.awt.Image; import javax.swing.ImageIcon; public class Images { ImageIcon welcomeImage = new ImageIcon("WelcomeImage.PNG"); Image image = welcomeImage.getImage(); Image newImage = image.getScaledInstance(750, 500, java.awt.Image.SCALE_SMOOTH); // 构造方法内可以写执行语句,创建类实例时自动执行 public Images() { welcomeImage = new ImageIcon(newImage); } }
方案2:用实例初始化块包裹
如果不需要自定义构造方法,也可以用实例初始化块包裹执行语句:
import java.awt.Image; import javax.swing.ImageIcon; public class Images { ImageIcon welcomeImage = new ImageIcon("WelcomeImage.PNG"); Image image = welcomeImage.getImage(); Image newImage = image.getScaledInstance(750, 500, java.awt.Image.SCALE_SMOOTH); // 实例初始化块,创建类实例时会自动执行 { welcomeImage = new ImageIcon(newImage); } }
内容的提问来源于stack exchange,提问作者Boomwhat1000
相关产品推荐
相关产品推荐

