Изображение появляется только после растягивания фрейма - 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д