JLabel 未显示在 JFrame 中
JLabel not showing in JFrame
我已经在 Whosebug 中搜索过这个问题,但是我无法解决我的问题。所以我有一个简单的图像,我分配给 JLabel 并将该标签添加到 JFrame 但它没有出现。有什么帮助吗? PS: 如果我设置的图像与屏幕尺寸不一样,我如何"readjust"或像重新缩放一样适应它?
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();
总是在构造函数的末尾添加 frame 的 setvisible(true);
我已经在 Whosebug 中搜索过这个问题,但是我无法解决我的问题。所以我有一个简单的图像,我分配给 JLabel 并将该标签添加到 JFrame 但它没有出现。有什么帮助吗? PS: 如果我设置的图像与屏幕尺寸不一样,我如何"readjust"或像重新缩放一样适应它?
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();
总是在构造函数的末尾添加 frame 的 setvisible(true);