簡體   English   中英

jFrame不顯示圖像

[英]jFrame doesn't show the image

因此,伙計們,我想使用代碼來設置jFrame的背景,而不必添加其他類的任何內容(例如在jPanel中使用此代碼,然后將該面板添加到jFrame)。 我想在這堂課上做所有的事情。 我真的不知道該怎么辦,所以我嘗試了一下,但是這段代碼沒有顯示圖像!

import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class panel extends JFrame{
    Image img;

    public void paintComponent(Graphics g){
        super.paintComponents(g);

        g.drawImage(img, 0, 0, getWidth(), getHeight(), null);
        g.dispose();
    }

    public panel(){
        img=new ImageIcon(getClass().getResource("bg_login.jpg")).getImage();
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        pack();
        setVisible(true);
    }


    public static void main(String[] args){
        new panel();
    }
}

沒有用於jframe paintcomponent()方法,因為它不是jcomponent而是容器。您可以制作一個面板並覆蓋paintcomponent方法,然后將setcontentpanejframe到該面板

public class panel extends JPanel {

    Image img;

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (img != null) {
            g.drawImage(img, 0, 0, getWidth(), getHeight(), null);
        }
        // g.dispose();
    }

    public panel() {
         img=new ImageIcon(getClass().getResource("bg_login.jpg")).getImage();

    }

    public static void main(String[] args) {
        JFrame jFrame = new JFrame();
        jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        panel panel = new panel();
        jFrame.setContentPane(panel);
        jFrame.pack();
        jFrame.setVisible(true);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM