Изображение появляется только после растягивания фрейма - Java
Формулировка задачи:
Такой код:
Почему изображение появляется только после растягивания фрейма?
public class SafeCracker extends JFrame{ //объявляем и инициализируем safePanel URL url = getClass().getResource("img/safe.jpg"); Image safe = Toolkit.getDefaultToolkit().getImage(url); ImagePanel safePanel = new ImagePanel(safe); public SafeCracker(){ setTitle("Взломщик"); //запрещаем изменять размер окна //setResizable(false); //задаем менеджер размещения setLayout(new GridBagLayout()); GridBagConstraints gridConstraints; ////размещаем safePanel при помощи менеджера safePanel.setPreferredSize(new Dimension(330, 420)); safePanel.setLayout(new GridBagLayout()); gridConstraints = new GridBagConstraints(); gridConstraints.gridx = 0; gridConstraints.gridy = 0; gridConstraints.gridheight = 3; add(safePanel, gridConstraints); //подбираем оптимальные размеры окна pack(); //узнаем размеры экрана и задаем параметры окна Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setBounds((int) (0.5 * (screenSize.width - getWidth())), (int) (0.5 * (screenSize.height - getHeight())), getWidth(), getHeight()); setVisible(true); } public static void main(String[] args) { //new SafeCracker().setVisible(true); SafeCracker sc=new SafeCracker(); } } //класс для создания safePanel class ImagePanel extends JPanel { private Image img; public ImagePanel(Image img) { this.img = img; } public void paintComponent(Graphics g) { g.drawImage(img, 0, 0,null); } }
Решение задачи: «Изображение появляется только после растягивания фрейма»
textual
Листинг программы
g.drawImage(img, 0, 0,null); this.updateUI();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д