我真的不明白为什么我的代码无法显示这头牛的图片,有什么建议吗?我从我的信息中正确地做了一切。所以我不太确定出了什么问题。我使用eclipse,程序显示没有错误。所以,如果有人能提供帮助,我们将非常感激。提前谢谢。
package Zeus;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
public class Main extends JFrame{
public static final int WIDTH = 400;
public static final int HEIGHT = 300;
public static final int SCALE = 2;
private ImageIcon COW;
private static JLabel C0W;
Main() {
setLayout(new FlowLayout());
COW = new ImageIcon(getClass().getResource("/Cow Clicker/Resource/COW.png"));
C0W = new JLabel(COW);
}
public static void main(String[] args) {
JFrame Squishy = new JFrame("Squishy");
Squishy.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Squishy.setResizable(false);
Squishy.setVisible(true);
Squishy.setSize(WIDTH*SCALE, HEIGHT*SCALE);
Squishy.setLocationRelativeTo(null);
Squishy.add(C0W);
}
}
答案 0 :(得分:3)
您需要创建Main
的实例,以便可以从其构造函数加载图像。
答案 1 :(得分:1)
我不知道从哪里开始
1st)按惯例,java中的变量以驼峰式的小写字母开头。
因此,您的变量COW
应更改为cow
,依此类推。
2)恕我直言,我从不使用像C0W
这样的变量名称。
第3条)您无任何理由延长JFrame
,因此请将代码更改为此。
public class Main{
public static final int WIDTH = 400;
public static final int HEIGHT = 300;
public static final int SCALE = 2;
private JFrame frame;
private ImageIcon cow;
private JLabel labelCow; // remove static
public Main() {
frame = new JFrame();
frame.setLayout(new FlowLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setSize(WIDTH*SCALE, HEIGHT*SCALE);
frame.setLocationRelativeTo(null);
cow = new ImageIcon(getClass().getResource("Cow Clicker/Resource/COW.png"));
labelCow = new JLabel(cow);
frame.add(cow);
//pack(); you are using setSize
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
new Main();
}
});
}
}