2011-06-05 34 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