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

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

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

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

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

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

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


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

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

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы