我已经在stackoverflow中搜索了此问题,但是我无法解决问题。因此,我有一个分配给JLabel的简单图像,并将该标签添加到JFrame中,但没有出现。有什么帮助吗? PS:如果我设置的图像与屏幕尺寸不同,如何像重新缩放一样“重新调整”或适合它?
package electricscreen;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
/**
*
* @author MertKarakas
*/
public class ElectricScreen extends JFrame{
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int width = (int) screenSize.getWidth();
int height = (int) screenSize.getHeight();
private String url = "el.jpg";
private ImageIcon img;
private JLabel lbl;
public ElectricScreen() {
setLayout(new FlowLayout());
setSize(width, height);
setResizable(false);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
img = new ImageIcon(getClass().getResource("/electricscreen/el.jpg"));
lbl = new JLabel(img);
add(lbl);
lbl.setVisible(true);
}
public static void main(String[] args){
ElectricScreen e = new ElectricScreen();
}
}
您正在将组件添加到已经可见的JFrame
中。在调用setVisible
之前添加组件(首选-您可能还需要调用pack
来布置组件)[]
add(lbl); pack(); setVisible(true);
或在添加组件后在JFrame上调用
revalidate
setVisible(true);
add(lbl);
revalidate();
总是在构造函数的末尾添加框架的setvisible(true);