Mer*_*kas 2 java swing jlabel jframe
我在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();
}
}
Run Code Online (Sandbox Code Playgroud)
您正在将组件添加到已经可见的JFrame
. 在调用之前添加组件setVisible
(首选 - 您可能还想调用pack
来布置组件)
add(lbl);
pack();
setVisible(true);
Run Code Online (Sandbox Code Playgroud)
或revalidate
添加组件后调用 JFrame
setVisible(true);
add(lbl);
revalidate();
Run Code Online (Sandbox Code Playgroud)