Java - Eclipse macht Probleme beim Applet-Zeichen!

Hallo,
vorweg erst einmal meine Konfiguration:
PC: EEE PC mit Intel Atom N270 und Intel GMA 950 Grafik-Chip.
Software: „Eclipse SDK Version: 3.5.1“ und „Java SE Development Kit 6 Update 16“

Mein Problem:
Wenn ich ein Java Applet ausführe erscheint wie gewohnt das Fenster „Applet-Ansicht“.
Bei dem Programm im Bild handelt es sich um eines, dass die aktuelle Fensterbreite und -höhe ins Binär-, Oktal- und Hexadezimalsystem umrechnet.

So, wenn ich nun die Fenstergröße verändere (durch Ziehen mit der Maus), werden die Werte zwar neu berechnet, aber über die alten drüber geschrieben!
-> http://img226.imagevenue.com/img.php?image=46336_Bil…

Wenn ich den Firefox-Brwoser maximiere und wieder minimiere, bleibt im Applet-Fenster der Inhalt vom Firefox erhalten.
-> http://img209.imagevenue.com/img.php?image=46337_Bil…

Woran könnte das liegen? Auf anderen PCs mit den selben Software-Versionen und auch dem selben Quelltext läuft alles einwandfrei… da wird das Fenster immer wieder neu gezeichnet. Nur auf meinem Net-Book nicht :frowning:

Ich wäre sehr dankbar für ein paar Tipps.

MfG,
ein verzweifelter Student
alias Aygodriver

Hallo,

ohne das Programm zu kennen, kann ich Dir nicht helfen.
Du solltest zumindest auszugsweise den Quelltext hinterlassen.
Soviel kann ich Dir sagen:
Dein Problem hat nichts mit Eclipse zu tun.
Das Problem liegt entweder

  • am Browser-Plugin

  • am Programm selbst (halte ich für sehr wahrscheinlich)

  • oder an der Konfiguration der JVM (Sicherheitseinstellungen)

Gruß, Stephan

Hi, ich habe den selben Code nochmal auf meinem großen Notebook getestet und da läuft alles. Deshalb denke ich mal nicht, dass es daran liegt, aber ich geb ihn dir trotzdem mal:

Quelltext:

import javax.swing.JApplet;
import java.awt.*;

public class ZahlensystemeApplet extends JApplet {

*Methoden zum Konvertieren in die verschiedenen Zahlensysteme ausgelassen*

public void paint(Graphics g) {
int breite = getWidth();
int hoehe = getHeight();

String breiteBinaer = konvertiereInBinaersystem(breite);
String breiteOktal = konvertiereInOktalsystem(breite);
String breiteHex = konvertiereInHexadezimalsystem(breite);
String hoeheBinaer = konvertiereInBinaersystem(hoehe);
String hoeheOktal = konvertiereInOktalsystem(hoehe);
String hoeheHex = konvertiereInHexadezimalsystem(hoehe);
int breiteBinDez = konvertiereInDezimalsystem(breiteBinaer, 2);
int breiteOktDez = konvertiereInDezimalsystem(breiteOktal, 8);
int breiteHexDez = konvertiereInDezimalsystem(breiteHex, 16);
int hoeheBinDez = konvertiereInDezimalsystem(hoeheBinaer, 2);
int hoeheOktDez = konvertiereInDezimalsystem(hoeheOktal, 8);
int hoeheHexDez = konvertiereInDezimalsystem(hoeheHex, 16);

String zeile1 = "Startwert: Breite = " + breite + " Hoehe = " + hoehe;
String zeile2 = "Binaer: Breite = " + breiteBinaer + " Hoehe = " + hoeheBinaer;
String zeile3 = "Oktal: Breite = " + breiteOktal + " Hoehe = " + hoeheOktal;
String zeile4 = "Hexadezimal: Breite = " + breiteHex + " Hoehe = " + hoeheHex;
String zeile5 = "Horner Binaer->Dezimal: Breite = " + breiteBinDez + " Hoehe = " + hoeheBinDez;
String zeile6 = "Horner Oktal->Dezimal: Breite = " + breiteOktDez + " Hoehe = " + hoeheOktDez;
String zeile7 = "Horner Hex->Dezimal: Breite = " + breiteHexDez + " Hoehe = " + hoeheHexDez;

g.drawString(zeile1, 40, 30);
g.drawString(zeile2, 40, 45);
g.drawString(zeile3, 40, 60);
g.drawString(zeile4, 40, 75);
g.drawString(zeile5, 40, 90);
g.drawString(zeile6, 40, 105);
g.drawString(zeile7, 40, 120);
}

}

Mir ist gerade eben folgendes aufgefallen:
Wenn ich diese Grafikfehler habe, mir dann den Desktop anzeigen lasse und wieder zurück zum Appletfenster gehe, dann sind die Fehler verschwunden! Erst wenn ich die Fenstergröße wieder verändere und aufgrunddessen neue Werte berechnet werden, dann wird wieder alles überschrieben, so wie vorher… sehr komisch…

Du musst Graphics neu zeichnen lassen:

getGraphics().clearRect(getLocation().x, getLocation().y, getWidth(), getHeight());

Gruß, Stephan

ps liegt doch am Quellcode :wink:

ja? kannst du mir dann bitte sagen, was ich falsch gemacht habe? Und wieso läuft’s auf den anderen Rechnern ohne Probleme? -.-

hast du denn schon mal ausprobiert, was ich in meinem letzten Beitrag geschrieben habe?

drawString mal deinen Text Piexel für Pixel. Wenn der Text geändet wird, müssen die vorher gemalten Pixel entfernt werden.
Warum es auf anderen Rechnern funktioniert hat, kann ich Dir nicht sagen.

Gruß, Stephan

Oh, entschuldige, deinen Verbesserungsvorschlag habe ich überlesen…
aber das scheint’s gewesen zu sein! Danke! Jetz läuft’s ohne Probleme :smile: