簡體   English   中英

如何在 JFrame 中放置背景圖像?

[英]How to put a background image in a JFrame?

我正在嘗試一點JFrame因為我必須制作 flappy bird 項目並且我的代碼中有一個錯誤。

當我運行它時,它以最大化 window 打開,但背景圖片不加載。 我必須最小化 window 然后最大化它才能工作。

package com.company;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class Main extends JFrame{
    JButton button;
    JLabel text;
    JFrame frame;
    JPanel panel;

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

    public Main(){
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("flappyBird");
        setLocationRelativeTo(null);
        setVisible(true);
        setSize(new Dimension(100,100));
        setExtendedState(JFrame.MAXIMIZED_BOTH);

        BufferedImage img = null;
        try {
            img = ImageIO.read(new File("C:\\Users\\m11\\Documents\\FlappyBird\\spirit\\base.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        Image dimg = img.getScaledInstance(800, 508, Image.SCALE_SMOOTH);
        ImageIcon imageIcon = new ImageIcon(dimg);
        setContentPane(new JLabel(imageIcon));
    }
}

我該如何解決?

試試這個例子:

JFrame f = new JFrame();
try {
    f.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("test.jpg")))));
} catch (IOException e) {
    e.printStackTrace();
}
f.pack();
f.setVisible(true);

或者,實現目標的另一種好方法是使用Background Panel

請盡量避免使用絕對路徑,它們在更改目錄或系統時幾乎總是會破壞應用程序。

讓我知道這是否有幫助:)

暫無
暫無

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

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