JAVA - 将图像添加到JPanel

时间:2016-08-20 10:22:23

标签: java image jframe jpanel

我是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();
              }
          });

感谢您的支持。

1 个答案:

答案 0 :(得分:0)

替换它:

contenant.repaint();

有了这个:

contenant.revalidate();

当您添加JLabel时,它不会自动强制内容窗格对其布局进行排序,因此即使JLabel在那里,它的大小也没有。调用revalidate()可以解决这个问题。