Как сделать картинку на весь экран в JFrame

Как сделать картинку на весь экран Я подогнал окно по размеру экрана а картинку не могу Искал коды в интернете не работает Может есть какой то метод что бы сделать картинку в JFrame на весь экран?

Код который я сейчас использую:

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

public class JFrame extends javax.swing.JFrame {

    JFrame() throws IOException {
        super("test");
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        setExtendedState(MAXIMIZED_BOTH);
        setSize(640, 480);
        setResizable(true);
        URL url = new URL( "https://bigsong.ru/wp-content/uploads/2014/07/Free-FL-Studio-Project-Files-792x445.jpg" );
        BufferedImage image = ImageIO.read(url);
        File f1 = new File("src\\Bground");
        ImageIO.write( image, "jpg", f1 );
        Thread.onSpinWait();
        JLabel background = new JLabel(new ImageIcon("src\\Bground."));
        add(background);
        setContentPane(new JLabel(new ImageIcon("src\\Bground")));
        ImageIcon ii = new ImageIcon("src\\Bground");
        ii.getImage();

        Container container = this.getContentPane();
        JButton button = new JButton();
        container.add(button);
        JPanel panel = new JPanel();
        panel.setLayout(null);
        add(panel);
        setVisible(true);
        button.setBounds(400, 200, 100, 40);

    }

    public static void main(String[] args) throws IOException {
        JFrame app = new JFrame();
        app.setVisible(true);
    }
}

Ответы (1 шт):

Автор решения: Nikita

Ответ если рисунок уже в папке src у меня он с именем Bground

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test_1 {

public static class Test_2 extends JFrame {
    private final JButton button = new JButton("Button"); //Создаём кнопку
    private final JTextField input = new JTextField("TextField"); //Создаём эдит
    private final JLabel label = new JLabel("Label:"); //Создаём лейбл


    Test_2() {
        super("Distantion"); //Название программы
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Что бы она закрывалась
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); //Дефолтный набор прав для того что бы узнать width и height
        this.setLocation(dim.width / 2 - 200, dim.height / 2 - 100); //Позиция проги (левый верхний угол)
        setSize(400, 200); //размер программы
        setResizable(false); //
        //Рисунок (должен быть в классе src с название Bground)
        JLabel background = new JLabel(new ImageIcon("src\\Bground.jpg"));
        add(background);
        setContentPane(new JLabel(new ImageIcon("src\\Bground.jpg")));
        ImageIcon ii = new ImageIcon("src\\Bground.jpg");
        ii.getImage();
        setContentPane(new JLabel(new ImageIcon(ii.getImage().getScaledInstance(400, 200, Image.SCALE_DEFAULT)))); //Размер рисунка


        label.setBounds(30, 25, 60, 20); //Размер и позиция лейбла (x и y - координаты width и height ширина и высота)
        input.setBounds(80, 25, 120, 20); //Размер и позиция эдита (x и y - координаты width и height ширина и высота)

        Container container = this.getContentPane(); //Добавляем контейнер

        container.add(label);
        container.add(input);
        container.add(button);

        JPanel panel = new JPanel();
        panel.setLayout(null);
        add(panel);
        setVisible(true);
        button.setBounds(140, 115, 100, 40); //Размер кнопки
        button.addActionListener(new ButtonEvenListener());
    }

    private static class ButtonEvenListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {

        }

        public static void main(String[] args) { // что бы программа запустилась
            Test_2 run = new Test_2();
            run.setVisible(true);
            }
        }
    }
 }  

Если рисунок из интернета

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;

public class Test_1 {

    public static class Test_2 extends JFrame {
        private final JButton button = new JButton("Button"); //Создаём кнопку
        private final JTextField input = new JTextField("TextField"); //Создаём эдит
        private final JLabel label = new JLabel("Label:"); //Создаём лейбл


        Test_2() throws IOException {
            super("Distantion"); //Название программы
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Что бы она закрывалась
            Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); //Дефолтный набор прав для того что бы узнать width и height
            this.setLocation(dim.width / 2 - 200, dim.height / 2 - 100); //Позиция проги (левый верхний угол)
            setSize(400, 200); //размер программы
            setResizable(false); //
            //Установка рисунка из интернета
            URL url = new URL( "https://www.ocy.ru/wp-content/uploads/2011/11/cat-elf.jpg"); //сслыка на рисунок
            BufferedImage image = ImageIO.read(url);
            File f1 = new File("src\\Bground"); //указываеться путь к файлу куда он будет сохранён
            ImageIO.write( image, "jpg", f1 );
            Thread.onSpinWait();
            JLabel background = new JLabel(new ImageIcon("src\\Bground."));
            add(background);
            setContentPane(new JLabel(new ImageIcon("src\\Bground")));
            ImageIcon ii = new ImageIcon("src\\Bground");
            ii.getImage();
            setContentPane(new JLabel(new ImageIcon(ii.getImage().getScaledInstance(400, 200, Image.SCALE_DEFAULT)))); //Размер рисунка


            label.setBounds(30, 25, 60, 20); //Размер и позиция лейбла (x и y - координаты width и height ширина и высота)
            input.setBounds(80, 25, 120, 20); //Размер и позиция эдита (x и y - координаты width и height ширина и высота)

            Container container = this.getContentPane(); //Добавляем контейнер

            container.add(label);
            container.add(input);
            container.add(button);

            JPanel panel = new JPanel();
            panel.setLayout(null);
            add(panel);
            setVisible(true);
            button.setBounds(140, 115, 100, 40); //Размер кнопки
            button.addActionListener(new ButtonEvenListener());
        }

        private static class ButtonEvenListener implements ActionListener {
            @Override
            public void actionPerformed(ActionEvent e) {

            }

            public static void main(String[] args) throws IOException { // что бы программа запустилась
                Test_2 run = new Test_2();
                run.setVisible(true);
            }
        }
    }
}

Я приложил свою программу которая показывает что изменение размера рисунка работает В основном код который за это отвечает это:
setContentPane(new JLabel(new ImageIcon(ii.getImage().getScaledInstance(400, 200, Image.SCALE_DEFAULT))));
400 - ширина(width)
200 - высота(height)

→ Ссылка