www.mikrocontroller.net

Forum: PC-Programmierung Problem mit Applet


Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
In meinem AVRTimerCalculator-Projekt wurde jetzt von Gjlayde die gute 
Idee aufgeworfen, das ganze als Browseranwendung zu machen.
Da ich das Projekt sowiso schon auf Java mit Swing umgestellt hatte, 
dacht ich mir, es wäre eine gute Idee, das ganze Ding einfach als Applet 
anzubieten.
Nun ja, gesagt, gecoded.

Leider funktioniert das Applet (siehe Anhang) nur im 
Eclispe-Appletviewer, in Opera werden nicht alle Schaltflächen 
angezeigt.
Genauer gesagt werden sie erst geladen, wenn sie in den Fokus kommen.

Wie kann man das verbessern?
Ich freue mich über Hilfe!

Mit freundlichen Grüßen,
Valentin Buck

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Repaint solltest du vermutlich im SwingAWTThread aufrufen (wieso wird 
das überhauptso unmotiviert in der StartMethode aufgerufen?), 
funktioniert es den in anderen Browsern?

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Läubi .. schrieb:
> Repaint solltest du vermutlich im SwingAWTThread

Wie binde ich das ein?
Ich bin in Java noch nicht so gut.
Im InternetExplodierer geht es gar nicht.
Firefox habe ich noch nicht getestet.
Das ist das erste Applet mit Steuerelementen, das ich programmiere.
Das mit der Startmethode was eine Art verzweifelter Rettungsversuch.
Könntest du mir da weiterhelfen?

Mit freundlichen Grüßen,
Valentin Buck

Autor: Bernd Klier (bem) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

pack einfach alles, was in deiner main-Methode steht in init()

Grüße

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So hab nochmal draufgeschaut.
Zumindest in Eclipse läßt es sich schonmal als applett starten.
public void paint(Graphics g){
  getContentPane().repaint();
}
Das ist jedoch keine so gute Idee... hat das einen Grund? Ansonsten raus 
damit! Du überschreibst damit eine Super-Methode rufst diese aber nicht 
auf sonder führst etwas komplett anderes aus... das ist nicht gut.
Falls du Eclipse benutzt, aktiviere unter den SaveActions mal die Option 
das er "MissingOverrideAnnotations" hinzufügt, dann sieht man das 
besser.

Die Main Methode kann meiner Meinung nach dafür komplett raus. (Und 
sollte normal auch nicht in init rein!)

Auch wichtig:
>> However using JApplet you need to add the child to the JApplet's
>> contentPane instead:
>>     applet.getContentPane().add(child);
>> The same is true for setting LayoutManagers, removing components,
>> listing children, etc.
http://download.oracle.com/javase/1.4.2/docs/api/j... 
(Hervorhebung durch mich)

Dies tust du hier:
Container c = getContentPane();
    setLayout(new GridLayout(5, 3, 10, 10));
 aber nicht!
Statdessen müßte es heissen:
Container c = getContentPane();
    c.setLayout(new GridLayout(5, 3, 10, 10));

Autor: Läubi .. (laeubi) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mit den Änderungen klappt es nun zumindest im IE wird es schonmal so 
angezeigt. (BTW, da du oben nur eine Classfile Angehängt hast... die 
ATC_Applett$.... Files gehören auch dazu, deshalb hab ich das jetzt mal 
in ein Jar gepackt)

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Erklärung.
Jetzt funktionierts!

Ich kann sogar das gleiche JAR für die Computeranwendung
und das Applet nehmen (zwei verschiedene Codedateien).

Die Frage ist jetzt nur noch, wo ich das Applet unterbringe.
Kann ich das hier hochladen, oder gibt's da Ärger mit dem Traffic
(naja, fast 20kB).
Und wie binde ich das ins Wiki ein?
Oder geht das nur über externe Seiten wie meinen Blog?

Mit freundlichen Grüßen,
Valentin Buck

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Valentin Buck schrieb:
> Und wie binde ich das ins Wiki ein?
Falls es noch keine speziellen Applett Tags im Wiki gibt, müsstest du 
Andreas bitten das entsprechend nach zurüsten/freizuschalten.

Valentin Buck schrieb:
> Ich kann sogar das gleiche JAR für die Computeranwendung
> und das Applet nehmen (zwei verschiedene Codedateien).
Man kann auch beides Kombinieren, das ist korrekt, z.B. indem du im 
Manifest einen Main-Header einbindest kann dann das jar auch einfach per 
Doppelklick gestartet werden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.