Jpanel. Как масштабировать и обновлять картинку? - Java

Узнай цену своей работы

Формулировка задачи:

В центре JFrame есть JPanel c отрисованной картинкой. Она большая, я думаю привязать ее к наименьшему краю JFrame и через .getScaledInstance у меньшить, но я не знаю как ее постоянно перерисовывать картинку. А еще как получить размеры еще не созданного окна? Что бы задать начальные размеры картинки? JFrame
package ru.chess;
 
import javax.swing.*;
import java.awt.*;
 
public class Chess extends JFrame {
    TilePanel tilePanel = new TilePanel();
 
    Chess(){
        super("Chess");
        setLayout(new BorderLayout());
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setBounds(300,100,800,600);
        add(tilePanel, BorderLayout.CENTER);
    }
 
    public static void main(String[] args) {
        Chess c = new Chess();
        c.setVisible(true);
    }
}
JPanel
package ru.chess;
 
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.io.IOException;
 
public class TilePanel extends JPanel{
    private Image ChessTile;
    private Image scaledChessTile;
 
    TilePanel(){
        try{
            ChessTile = ImageIO.read(new File("C:\\Users\\makit_000\\IdeaProjects\\Chess\\src\\ru\\chess\\imeges\\chessTile.jpg"));
            scaledChessTile = ChessTile.getScaledInstance(600,600,Image.SCALE_SMOOTH);
        }catch (IOException e){
            System.out.println("   Шахматная доска не загрузилась   ");
        }
    }
 
    @Override
    protected void paintComponent(Graphics g){
        super.paintComponent(g);
        g.drawImage(scaledChessTile, 0, 0, null);
    }
 
}

Решение задачи: «Jpanel. Как масштабировать и обновлять картинку?»

textual
Листинг программы
    @Override
    protected void paintComponent(Graphics g){
        super.paintComponent(g);
        g.drawImage(ChessTile, 0, 0, getWidth(),getHeight(), null);
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы