问题描述
我有两个文件,Display.java
(第一个)和 Lancher.java
(第二个)。它们都在同一个项目下,但属于两个不同的类。我想要一个显示图像,但 Launcher 文件中的宽度和高度出现错误。我不知道为什么,因为 public
文件中的宽度和高度都是 Display
。
import javax.swing.*;
import java.awt.*;
public class Display extends JFrame {
private Canvas canvas;
public Display(int width,int height) {
setTitle("Game");
setDefaultCloseOperation(EXIT_ON_CLOSE);
//Process will still be running but application closes when cross is pressed
setResizable(false);
canvas = new Canvas();
canvas.setPreferredSize(new Dimension(width,height));
//Set size to pass in with dimension
canvas.setFocusable((false));
add(canvas);
pack();
//Add canvas to display & calculate size of display frame
setLocationRelativeTo (null);
//To open frame in the center of screen as opposed to side
setVisible(true);
}
}
启动器.java
public class Launcher {
public static void main(String[] args) {
Display display = new Display( width: 800,height: 600);
}
}
解决方法
Display
类中 Launcher
对象的初始化语法无效。这将是初始化它的正确方法:
Display display = new Display(800,600);
请注意,将值传递给对象的构造时不使用参数名称/标识符。
,width
和 height
是参数名称。 Java 没有命名参数,只有位置参数。换句话说,在对构造函数的调用中删除标签,你应该没问题:
public class Launcher {
public static void main(String[] args) {
Display display = new Display(800,600);
}
}