我是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();
}
});
感谢您的支持。
答案 0 :(得分:0)
替换它:
contenant.repaint();
有了这个:
contenant.revalidate();
当您添加JLabel时,它不会自动强制内容窗格对其布局进行排序,因此即使JLabel在那里,它的大小也没有。调用revalidate()可以解决这个问题。