画像操作の実験をしようとしています。基本的に、タイマーによって継続的に更新される画像があり、その画像を JLabel に表示します。
私の問題は、JLabel が画像を更新しないことです。
これが私のタイマーコードです:
Timer timer = new Timer(200, new ActionListener() {
public void actionPerformed(ActionEvent e) {
count++;
System.out.println("timer");
System.out.println(filename);
ImageIcon icon = new ImageIcon(filename);
label = new JLabel();
label.setIcon(icon);
label.setText(""+count);
panel = new JPanel();
panel.add(label);
frame.getContentPane().removeAll();
frame.getContentPane().add(panel);
frame.repaint();
frame.validate();
try{
FileWriter fstream;
fstream = new FileWriter(filename,true);
BufferedWriter out = new BufferedWriter(fstream);
out.write("text to append");
out.close();
}catch (Exception ex){
System.err.println("Error: " + ex.getMessage());
}
}
});
ファイル名は私の画像へのパスです。
画像は表示されますが、JLabel が画像を更新しません。私は自分のコードをテストし、2 つの異なる画像を切り替えると動作します...
編集:
最後に画像を作成するたびに複製し、タイムスタンプで名前を変更することで解決しました。