java为什么我的JLabel不生成图像?
我看了几本教程,想知道为什么我的JLabel没有生成图像?我以为我已经准备好了展示图像所需的一切。我的程序中是否有其他图形干扰?如果有多个图像在彼此的顶部,java是否使用自上而下的层系统来确定哪些图像在彼此的顶部
package scratch;
import java.awt.Font;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
import java.awt.Rectangle;
import javax.swing.JFrame;
import javax.swing.JLabel;
//import statements
//Check if window closes automatically. Otherwise add suitable code
public class okay extends JFrame {
JPanel jp = new JPanel();
JLabel jl = new JLabel();
public okay(){
jl.setIcon(new ImageIcon("C:\\Users\\ShawnK\\Desktop\\cat.png"));
jp.add(jl);
add(jp);
validate();
}
public static void main(String args[]) {
JFrame window = new JFrame();
okay t1 = new okay();
window.setSize(640,800);
window.setTitle("lets do this");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
window.setVisible(true);
drawingComponent DC = new drawingComponent();
ai enemy = new ai();
window.add(DC);
window.add(t1);
}
}
# 1 楼答案
您只是创建了一个普通的JFrame:
你永远不会创建
new okay()
对象。要明白,它不会通过魔法创造自己,如果你想让它显示出来,你必须在代码中这样做顺便说一句,我不知道
drawingComponent
是什么:因为你从来没有显示过类代码。此外,在添加所有组件之前,不应将JFrame设置为可见
也
setVisible(true)
李>ImageIO.read(...)
将你的图像作为缓冲图像,然后将其放入你的图像图标中。它更安全,而且(我认为)允许更好地缓存图像李>