Изображение появляется только после растягивания фрейма - Java

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

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

Такой код:
Листинг программы
  1. public class SafeCracker extends JFrame{
  2. //объявляем и инициализируем safePanel
  3. URL url = getClass().getResource("img/safe.jpg");
  4. Image safe = Toolkit.getDefaultToolkit().getImage(url);
  5. ImagePanel safePanel = new ImagePanel(safe);
  6. public SafeCracker(){
  7. setTitle("Взломщик");
  8. //запрещаем изменять размер окна
  9. //setResizable(false);
  10. //задаем менеджер размещения
  11. setLayout(new GridBagLayout());
  12. GridBagConstraints gridConstraints;
  13. ////размещаем safePanel при помощи менеджера
  14. safePanel.setPreferredSize(new Dimension(330, 420));
  15. safePanel.setLayout(new GridBagLayout());
  16. gridConstraints = new GridBagConstraints();
  17. gridConstraints.gridx = 0;
  18. gridConstraints.gridy = 0;
  19. gridConstraints.gridheight = 3;
  20. add(safePanel, gridConstraints);
  21. //подбираем оптимальные размеры окна
  22. pack();
  23. //узнаем размеры экрана и задаем параметры окна
  24. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  25. setBounds((int) (0.5 * (screenSize.width - getWidth())), (int) (0.5 * (screenSize.height - getHeight())), getWidth(), getHeight());
  26. setVisible(true);
  27. }
  28. public static void main(String[] args) {
  29. //new SafeCracker().setVisible(true);
  30. SafeCracker sc=new SafeCracker();
  31. }
  32. }
  33. //класс для создания safePanel
  34. class ImagePanel extends JPanel
  35. {
  36. private Image img;
  37. public ImagePanel(Image img)
  38. {
  39. this.img = img;
  40. }
  41. public void paintComponent(Graphics g)
  42. {
  43. g.drawImage(img, 0, 0,null);
  44. }
  45. }
Почему изображение появляется только после растягивания фрейма?

Решение задачи: «Изображение появляется только после растягивания фрейма»

textual
Листинг программы
  1. g.drawImage(img, 0, 0,null);
  2.     this.updateUI();

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


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

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

14   голосов , оценка 3.714 из 5

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

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

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