Настройка ImageIcon на полный экран - PullRequest
0 голосов
/ 01 февраля 2020

Я создал класс Board, в который я импортирую изображение, используя ImageIcon, и вместо создания изображения с указанным разрешением я хочу, чтобы оно было полноэкранным для любого типа монитора.

public Board() {
        p = new Dude();
        addKeyListener(new AL());
        setFocusable(true);
        ImageIcon i = new ImageIcon("C:/test.jpg");

        img = i.getImage();
        time = new Timer(5, this);
        time.start();
    }

Я использовал этот код раньше:

public class MainMenu2 {
    MainMenu2() throws IOException{
        JFrame Main_Menu = new JFrame("Main Menu");
        Main_Menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        final int widthScreen = screenSize.width;
        final int heightScreen = screenSize.height;

        BufferedImage backgroundImage = ImageIO.read(new File("P://My Pictures//background1.jpg"));
        JLabel background = new JLabel(new ImageIcon(backgroundImage));
        Image scaleBackground = backgroundImage.getScaledInstance(widthScreen, heightScreen, Image.SCALE_SMOOTH);
        ImageIcon imageIcon = new ImageIcon(scaleBackground);
        Main_Menu.setContentPane(new JLabel(imageIcon));

, который использует масштаб сглаживания, который устанавливает изображение в ширину и высоту экрана, но я не знаю, как применить его к моему текущему коду. Разница между ними заключается в том, что класс Board расширяет JPanel, а MainMenu2 - это просто обычный класс, в котором создается JFrame и т. Д. c. Пожалуйста помоги! Спасибо.

1 Ответ

0 голосов
/ 01 февраля 2020

На самом базовом c уровне это может выглядеть примерно так ...

ImageIcon i = ImageIO.read(new File("C:/test.jpg"));
Image scaleBackground = backgroundImage.getScaledInstance(widthScreen, heightScreen, Image.SCALE_SMOOTH);            
img = scaleBackground.getImage();

Теперь проблемы - размер компонента вряд ли будет соответствовать размеру экрана .

В качестве предпочтения у меня может возникнуть желание сделать что-то вроде Автоматически масштабировать ImageIcon до размера метки

Также следует прочитать Опасности изображения. getScaledInstance ()

...