在我的代碼中,我有一個JButton(名爲PlotStatus),點擊後可以在JLabel中導入和打印圖像。圖像從不斷更新的png文件導入爲BufferedImage。我希望能夠在JButton被點擊時刷新/更新JLabel上的圖像。也就是說,在每次點擊時,我都希望緩衝區內存重置,並且JLabel重新加載(更新的)圖像。相反,我得到了所有不同的圖像,第一個留在前臺。用JButton更新JLabel
StatusLabel和temp在這裏定義爲private(但公開沒有區別)。 我已經嘗試了許多不同的方式,閱讀大量絕對沒有運氣的帖子,看起來應該是有效的東西。任何建議,高度讚賞。
在此先感謝。
//This is an Item Listener which reacts to clicking on the JButton PlotStatus
PlotStatus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
JLabel statusLabel = new JLabel(); panel1.remove(statusLabel);
BufferedImage bufferedImage = null;
try {
bufferedImage = ImageIO.read(new File("status.png"));
bufferedImage.flush();
JLabel temp = new JLabel();
temp.setIcon(new ImageIcon(bufferedImage));
statusLabel = temp;
panel1.add(statusLabel);
revalidate();repaint();
statusLabel.setVisible(true);statusLabel.setBounds(560,20,650,440);
} catch(IOException ex) {ex.printStackTrace();}
}
});
我在這裏應用了(第一個)答案的建議http://stackoverflow.com/questions/8084115/use-of-seticon-on-jlabel-repeats-old-image但它再次沒有奏效。 –