繁体   English   中英

我正在尝试使用 JLabel 作为背景,但我不能

[英]Im triying to use a JLabel as a BackGround and I cant

f = new JFrame();
f.setExtendedState(JFrame.MAXIMIZED_BOTH);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

d = new JPanel();
f.add(d);
ImageIcon icon = new ImageIcon("C:\\Users\\jean\\Pictures\\988057.jpg");
JLabel background = new JLabel(icon);
background.setSize(d.getSize());
background.setLocation(0,0);
d.add(background);
d.setLayout(null);
background.setOpaque(true);

d.add(background, BorderLayout.CENTER, 0);

我正在尝试使用 JLabel 来显示背景图像,但是尽管图像的路径是正确的,但这段代码不起作用。 这个问题的原因是什么?

在向其添加 label 和图标之前,您正在调用 f.setVisible(true)。 而且您不想在 label 和 fram 之间添加面板。 你可以试试这个方法,

            f = new JFrame();
            f.setExtendedState(JFrame.MAXIMIZED_BOTH);

            f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

            ImageIcon icon = new ImageIcon("C:\\Users\\jean\\Pictures\\988057.jpg");
            JLabel background = new JLabel();
            background.setIcon(icon);

            background.setSize(f.getSize());
            f.add(background);
            f.setVisible(true);

我希望这会解决你的问题。

解决方案。 多谢你们。

    f = new JFrame();
    f.setExtendedState(JFrame.MAXIMIZED_BOTH);
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    
    d = new JPanel();
    d.setSize(f.getSize());
    f.add(d);   
    
    File file = new File("C:\\Users\\jean\\Pictures\\988057.jpg");

    
    try {
        
        BufferedImage image = ImageIO.read(file);
        JLabel label = new JLabel(new ImageIcon(image));
        label.setSize(d.getSize());
        d.add(label);
        
    } catch (IOException e) {
        e.printStackTrace();
        
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM