2011-06-05 22 views
0

第一次选择图像时,它工作得很好。但是,当我尝试更改它时,它不起作用,第一个图像仍保留在屏幕上。在gui中重绘的问题

label = new JLabel(""); 
panel_1.add(label); 

btnAddImage = new JButton("Select Image"); 
btnAddImage.addMouseListener(new MouseAdapter() { 
@Override 
    public void mouseClicked(MouseEvent arg0) { 
    File f = null ; 
    fileChooser = new JFileChooser(); 
    fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); 
    int value = fileChooser.showOpenDialog(fileChooser); 
    if (value == JFileChooser.APPROVE_OPTION) 
    { 
    f = fileChooser.getSelectedFile(); 
    if (f.exists()) 
    { 
     inputImage_textField.setText(f.getName());   
     BufferedImage bi = getMyBuffImage(); 
     label = new JLabel(new ImageIcon(bi)); 
     label.setBounds(0, 68, 98, 92); 
     panel_1.add(label); 
     panel_1.repaint(); 
    } 
    } 
} 
}); 

我在做什么错误,当我重新绘制或其他什么是问题?

感谢

回答

2

如果要更换现有的标签,与

label.setIcon(new ImageIcon(bi)); 
label.setBounds(0, 68, 98, 92); 
panel_1.revalidate(); 

更换

label = new JLabel(new ImageIcon(bi)); 
label.setBounds(0, 68, 98, 92); 
panel_1.add(label); 
panel_1.repaint(); 

或者,如果你想添加第二个标签,只需更换

label = new JLabel(new ImageIcon(bi)); 
label.setBounds(0, 68, 98, 92); 
panel_1.add(label); 
panel_1.repaint(); 

JLabel newLabel = new JLabel(new ImageIcon(bi)); 
label.setBounds(0, 68, 98, 92); 
panel_1.add(newLabel); 
panel_1.revalidate(); 
+0

第一的建议的工作,感谢 – Mara 2011-06-05 14:53:02

+0

如果我使用panel_1.revalidate()的图像完全不 – Mara 2011-06-05 14:54:04

+0

显示尝试用编辑代码.. – khellang 2011-06-05 14:57:23