Java Anwendung als Applet?

He4db4nger

Commodore Pro
Registriert
Feb. 2007
Beiträge
4.188
hi ihrz,

ich habe ein kleines Problem. Ich habe eine kleine Java-Anwendung, genauer gesagt ein kleines Spiel. Das läuft auch alles soweit, nur hab ich in der Hektik total vergessen, dass das Spiel auch im Browser aufrufbar sein soll, also als Applet dann.

Jetzt ist es natürlich so, dass man eine Anwendung nicht direkt im Browser aufrufen kann. Also, schön die Klasse Ping gemacht, die von Applet ableitet und bei

start()

wird das Spiel aufgerufen.

Das klappt auch ohne Fehler seitens Eclipse, jedoch wird dann beim Aufrufen ein leeres Applet-Fenster erzeugt und das Spiel in einem neuen Fenster.

Ich hab mit Applets 0 Erfahrung, ich hab mich bisher nur durch die normale "Entwicklung" gewurschtelt (im Rahmen des Semesters). Was ist denn das Zauberwort dabei? Google und Forumsuche spucken dazu nix aus, was mich befürchten lässt, dass das ganze vll. doch nicht so einfach ist. Ich weiß, hätte ich das ganze direkt als Applet gemacht, hätte ich die Probleme jett nicht.. aber vll. gehts ja noch iwie nachträglich? (Das Problem mit dem Bildern muss ich mir dann auch nochmal anschauen^^).

Wäre nett, wenn mir jemand nen entscheidenen Tipp geben könnte.. ;)

P.S. new Menu(new PingPong().setResizable(true) erzeugt das Spiel in einem normalen Fenster.
 
Poste bitte den ganzen Code. Mit einer Zeile kann hier keine so recht was anfangen...
 
Egal wenns viele Klassen sind... Dann poste zumindest deine Klassenrümpfe... Ich hab den Verdacht dass du falsche Klassentypen hast und deine Anwendung deshalb nicht geht, bzw. deine Applet Klasse unvollständige Methoden implementiert...
 
hm..also meine Hauptklasse:

Code:
[..]
import javax.swing.JApplet (weil ich Swing Elemente drin habe)
[..]

public class PingPong extends JApplet
[..]
PingPong()
{
super();
// hier wird das Spielfeld etc. initialisiert.
}

public void start()
{
new Menu(new PingPong())   
// Menu ist eine Erweiterung von Controlled Window, zwei Klassen, die das Fensterverhalten und eine Menüleiste steuern.
}


und die zweite Klasse, die als JApplet-Hauptklasse existiert:

Code:
public class Ping extends JApplet
{
public void start()
{
PingPong.start();
}


wobei.. bei JApplet brauch ich ja ne main-Methode? :/ grr...mir schwirrt der kopf.. :/

wenn ich das so mach, vermisst er die anderen Klassen, in denen die Spielfiguren etc. erzeugt werden..die müssen dann noch in ein init() vor dem Rumpf oder? wenn ich das da richtig gesehen habe... wobei ich für die einzelnen Sachen einzelne move() Methoden und ähnliches habe...ohje...das wird ne lange Nacht :/
 
Wenn du aus dem einen Applet das andere heraus aufrufst, wird das andere in einem neuen Fenster dargestellt. Das ist ganz normal.

Wenn du im Browser das Applet "Ping" darstellen willst, musst du auch genau dieses in die Webseite einbinden.

Da JApplet von der Klasse Panel abgeleitet ist, kannst du das Applet "Ping" auch wie ein Panel auf das Applet "PingPong" legen. Das wäre aber imho doppelt gemoppelt.
 
Eine main-Methode brauchst du bei Applets nicht, das geht über init(); bzw. start();...

Wie Cobinja schon sagte: Du solltest die Klasse die du einbinden willst direkt in deine Applet-Klasse schreiben, da sonst eine neue Instanziierung zur Folge hat, dass ein neues Fenster angezeigt wird.

Die Initialisierung deiner Variablen sollte in init() stehen, start() wird normalerweise implizit aufgerufen. Noch was zu den Variablen: Versuche möglichst sparsam mit Variablen und Datenstrukturen umzugehen bei JApplets. Es ist immerhin eine Webanwendung bei der kein Mensch lust dazu hat 2 min auf das Einsatzbereite Applet zu warten! Ich hab da schon einige Beispiele gesehen die ich am liebsten den Codern an den Kopf geschmissen hätte...

Applets sind nicht umbedingt auf die Ausübung von objektorientiertem Programmieren ausgerichtet... In diesem Fall gilt: Schnelligkeit vor Schönheit!
 
Zurück
Oben