# jar -> applet wie setzt man das am leichtesten um



## neocrom (28. Apr 2009)

Hey Leute,
Ich hab eine Java apl. (jar Datei) mit Swing und AWT geschrieben und nun hätte ich das ganze gerne als Applet gibt es da eine Einfache Variante das ganze umzusetzten oder evtl. in ein Applet reinzuladen oder muss ich alles neu schreiben?

Und kann man Applets irgendwie gegen unbefugten Zugriff schützten ohne etwas wie Typo3 oder joomla zu verwenden? Wenn ja wie und wie gut?

mfg neocrom


----------



## L-ectron-X (28. Apr 2009)

Wenn du eine Applkation auf einem Applet darstellen willst, brauchst du erst mal eine Klasse, die von JApplet erbt.
Dann nimmst du dein Hauptpanel aus deiner Applikation und fügst es ins Applet ein. Falls du ein Menü aufgebaut hast, holst du dir das Menü und setzt es ins Applet.
Und dann sollte deine Applikation schon in einem Applet laufen.

Eine andere, vielleicht elegantere Variante, wäre die Verwendung von Java WebStart. Dein Programm läuft dann nicht mehr in einem Browser, kann aber ganz einfach über eine Webseite heruntergeladen, geupdated und gestartet werden.

BTW: die Mischung von AWT- und SwingGUI-Elementen sollte vermieden werden.


----------



## neocrom (28. Apr 2009)

Danke schön schonmal.

aber was verstehst du unter"...
Dann nimmst du dein Hauptpanel aus deiner Applikation und fügst es ins Applet ein.
..:"
copy und paste sollte doch nicht Funktionieren oder?

Und wie schaut es aus mit dem schützen des Fertigen applets


----------



## sparrow (28. Apr 2009)

neocrom hat gesagt.:


> aber was verstehst du unter"...
> Dann nimmst du dein Hauptpanel aus deiner Applikation und fügst es ins Applet ein.
> ..:"
> copy und paste sollte doch nicht Funktionieren oder?



Copy&Paste alleine reicht nicht ganz.
Normalerweise hat eine Anwendung ja ein "Hauptfenster". Dieses Hauptfenster musst du nur so umbauen, dass es kein JFrame mehr ist sondern ein JApplet.
Natürlich hat ein JApplet nicht die selben Methoden wie ein JFrame (weil es ja kein Fenster ist), trotzdem ist es ein Container und kann entsprechend mit Objekten befüllt werden. Der Weg vom JFrame zum JApplet ist relativ kurz.

Übrigens funktioniert es auch im Applet das JFrame zu initiailisieren und sichtbar zu machen.

Gruß
Sparrow


----------



## L-ectron-X (28. Apr 2009)

neocrom hat gesagt.:


> copy und paste sollte doch nicht Funktionieren oder?


Warum so kompliziert? Ich meine, du hast doch sicher ein Panel in deiner Applikation, in welchem alle GUI-Fäden zusammen laufen, das Hauptpanel eben.
Von dem erzeugst du eine Instanz und legst es in ein JApplet mit BorderLayout. Fertig ist die Laube.


----------



## neocrom (28. Apr 2009)

"...Panel in deiner Applikation, in welchem alle GUI-Fäden zusammen laufen, das Hauptpanel eben.
Von dem erzeugst du eine Instanz ..."

? Eine Instanz von einer Instanz? Sicher hab ich das dass heißt bei meinem JFrame contentpane und ist ein container aber das ist natürlich schon eine Instanz und keine Klasse also wie soll ich davon eine Instanz erzeugen? naja ich hab zwar was gefunden: Getting Started with Applets (The Java™ Tutorials > Deployment > Applets)

siehe unten converting application to applet aber das ist dann doch alles rel. umständlich  naja schlechte Planung halt wenn man ja mal ordentlich Planen würde könnte ich mir ja auch so Aktionen sparen 

naja danke für den support


----------



## sparrow (29. Apr 2009)

neocrom hat gesagt.:


> "Sicher hab ich das dass heißt bei meinem JFrame contentpane und ist ein container aber das ist natürlich schon eine Instanz und keine Klasse also wie soll ich davon eine Instanz erzeugen?



Ich versuch das mal einfach auszudrücken:
L-ectron-X geht davon aus, dass du ein JPanel auf dem du alle deine GUI-Elemente addest und diese dann auf dem ContentPane eines JFrame einfügst.

Beispiel:

```
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.add(new JButton("OK"));
frame.add(panel);
```

In so einem Fall würdest du dann einfach ein JApplet, nämlich die neue Hauptklasse deines Applets, statt dem JFrame verwenden.


```
public class MainApplet extends JApplet {
[...]
JPanel panel = new JPanel();
panel.add(new JButton("OK"));
this.add(panel);
```


Wenn du also alles bisher direkt auf dem JFrame (bzw. dessen ContenPane) addest gibt es 2 Möglichkeiten:
1. du addest statt auf den JFrame direkt auf ein JPanel und dieses dann auf das JApplet
2. du addest statte auf den JFrame direkt auf JAppelet: JApplet (Java Platform SE 6))


----------



## L-ectron-X (29. Apr 2009)

Danke sparrow, Genau so meinte ich das. War das von mir so missverständlich ausgedrückt? :autsch:
Einfach eine Instanz einer Klasse (Hauptpanel) erzeugen. Wo du die drauf setzt, ist doch zweitrangig. Ob das nun ein JPanel ist, ein JFrame oder auch ein JApplet - völlig Wurscht.


----------

