Beetje vage topictitel, maar ik kan even niks beters verzinnen.
Het probleem:
Dit stukje code maakt een nieuw imageIcon bij om als plaatje in een jbutton te gooien.
Nu heb ik een webcam foto functie gemaakt die dit plaatje
Bovenstaande functie wordt echt opnieuw uitgevoerd, dat heb ik gecontroleerd dmv println's erin te zetten.
Het stomme is ook nog, als ik m'n plaatje verwijder ipv overschrijf, werkt het wel! Voor de duidelijkheid, het plaatje wordt echt overschreven. Als ik het plaatje open met een image viewer krijg ik het juiste plaatje te zien.
Zodra ik mijn hele programma opnieuw opstart zie ik wel het nieuwe plaatje.
Het lijkt alsof new ImageIcon("foto"); een plaatje uit een cache trekt ofzo, ipv hem echt opnieuw in te lezen.
Dit is de code die ik gebruik om mijn plaatje te schrijven (en werkt ook):
Ik programmeer met Eclipse onder Windows XP. Java versie 1.5 update 6.
Iemand een idee wat hier fout gaat?
Het probleem:
code:
1
2
3
4
5
6
7
| ImageIcon foto = null;
File f = new File("foto/" + rs.getString("Telefoonnr")+ ".jpg");
if (f.exists()) {
foto = new ImageIcon("foto/" + rs.getString("Telefoonnr")+ ".jpg");
} else {
foto = new ImageIcon("anon.png");
} |
Dit stukje code maakt een nieuw imageIcon bij om als plaatje in een jbutton te gooien.
Nu heb ik een webcam foto functie gemaakt die dit plaatje
code:
overschrijft. Zodra dat gebeurt gooi ik de JPanel weg waar bovenstaande code in staat en maak ik hem opnieuw aan (nog niet automatisch, dus "te snel lezen" is het niet). Maar op de een of andere manier krijg ik dan weer net zo hard mijn oude plaatje terug 1
| foto/[bestandsnaam].jpg |
Het stomme is ook nog, als ik m'n plaatje verwijder ipv overschrijf, werkt het wel! Voor de duidelijkheid, het plaatje wordt echt overschreven. Als ik het plaatje open met een image viewer krijg ik het juiste plaatje te zien.
Zodra ik mijn hele programma opnieuw opstart zie ik wel het nieuwe plaatje.
Het lijkt alsof new ImageIcon("foto"); een plaatje uit een cache trekt ofzo, ipv hem echt opnieuw in te lezen.
Dit is de code die ik gebruik om mijn plaatje te schrijven (en werkt ook):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| //controleren of er al een foto bestaat
File f = new File("foto/" + jtf.getText() + ".jpg");
if(f.exists() && !asked) {
//bestand bestaat al!
message.setText("Er bestaat al een foto voor deze gebruiker!");
ok.setText("Overschrijven");
jtf.setEnabled(false);
asked = true;
} else {
try {
//plaatje verkleinen, ik wil een thumbnail
BufferedImage scaledImage = new BufferedImage(160, 120, BufferedImage.TYPE_INT_RGB );
Graphics2D gScaledImage = scaledImage.createGraphics();
gScaledImage.setRenderingHint( RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_SPEED );
gScaledImage.drawImage(bimg, 0, 0, 160, 120, null );
//plaatje opslaan
ImageIO.write(scaledImage, "jpg", f);
message.setText("Afbeelding succesvol opgeslagen.");
} catch (Exception er) {
message.setText("Fout bij het opslaan van afbeelding!");
}
} |
Ik programmeer met Eclipse onder Windows XP. Java versie 1.5 update 6.
Iemand een idee wat hier fout gaat?
[ Voor 20% gewijzigd door Verwijderd op 19-06-2006 22:47 ]