JAVA - Добавить изображение в JPanel

java image jframe jpanel

57 просмотра

1 ответ

Я новичок в JAVA. Я хотел бы получить изображение в моем окне (JPanel) для работы над ним (например, добавить круги). Я создал меню, и когда я нажимаю «Файл> Импорт», появляется открытое диалоговое окно для выбора моего изображения. Я получил правильный путь к файлу изображения (проверено благодаря System.out.println (FC.getSelectedFile (). ToString ());), но изображение не появляется ...

Вот код:

        //On crée les listeners pour le menu "Fichier" :
        this.importer.addActionListener(new ActionListener()
        {
              public void actionPerformed(ActionEvent event)
              {
                  //On ouvre la boîte de dialogue pour charger le dessin :
                  JFileChooser FC = new JFileChooser();
                  FC.showOpenDialog(null);
                  BufferedImage myPicture=null;
                try {
                    myPicture = ImageIO.read(FC.getSelectedFile());
                    System.out.println(FC.getSelectedFile().toString());
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                  contenant.add(new JLabel(new ImageIcon(myPicture)), BorderLayout.CENTER);
                  contenant.repaint();
              }
          });

Спасибо за поддержку.

Автор: Fred Источник Размещён: 08.11.2019 11:10

Ответы (1)


0 плюса

Решение

Заменить это:

contenant.repaint();

С этим:

contenant.revalidate();

Когда вы добавляете JLabel, он не заставляет панель содержимого автоматически сортировать свой макет, поэтому, даже если JLabel находится там, он еще не имеет размера. Вызов revalidate () исправляет это.

Автор: Drewll Размещён: 20.08.2016 10:37
Вопросы из категории :
32x32