Как сделать картинку на весь экран в 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)