# Java Applet mit einer GUI erstellen



## Nightliner (8. Jan 2006)

Ich habe gesehen das es einige Java Applets gibt die eine richtige GUI haben und aussehen wie ein richtiges Programm. Ich würde gerne ein Programm erstellen das im Explorer angezeigt werden kann. Leider habe ich noch nie gefunden wie man ein applet mit einem GUI bearbeiten kann.

Ich würde gerne eine Anwendung schreiben die ich von extern wie intern über den browser öffnen kann. beispiel: http://www.vatsim.net da gibt es einen link visual display und da ladet sich ein applet das genauso so aussieht wie ein programm

danke für eure hilfe


----------



## Campino (8. Jan 2006)

Nightliner hat gesagt.:
			
		

> Ich habe gesehen das es einige Java Applets gibt die eine richtige GUI haben und aussehen wie ein richtiges Programm. Ich würde gerne ein Programm erstellen das im Explorer angezeigt werden kann. Leider habe ich noch nie gefunden wie man ein applet mit einem GUI bearbeiten kann.
> 
> Ich würde gerne eine Anwendung schreiben die ich von extern wie intern über den browser öffnen kann. beispiel :www.vatsim.net da gibt es einen link visual display und da ladet sich ein applet das genauso so aussieht wie ein programm
> 
> danke für eure hilfe



Also: ein Applet an sich ist nur eine Fläche. Diese Fläche kann man jetzt bemalen (z.B. indem man JApplet.paint überschreibt), man kann auch GUI-Elemente draufmachen, indem man JApplet.getContentPane().add(yourComponent) aufruft. Genauso wie man in ein Frame/JFrame Steuerelemente einfügt.

Dann kann die Applet-Fläche angezeigt werden. Und zwar entweder vom Browser oder von jedem anderen Fenster. Man kann ein Applet wie jedes andere Steuerelement in einer Applikation als Steuerelement verwenden. Beantwortet das deine Frage?


----------



## L-ectron-X (8. Jan 2006)

Um auf ein Applet GUI-Komponenten zu bringen, muss nicht zwingend Swing (JApplet) verwendet werden.
Ein Applet erbt direkt von Panel (AWT) und kann so mit  jede verfügbare AWT-Komponente aufnehmen und anzeigen.
Im Unterschied zur Applikation werden die GUI-Komponenten in einem Applet meist in der init()-Methode und nicht wie in einer Applikation im Konstruktor instanziiert.
Sonst ist die GUI-Programmierung in einem Applet mit der einer Applikation identisch.

In dem von dir geposteten Beispiel ist die Hauptfläche die von java.applet.Applet erbende Klasse. In ihr wurde die paint()-Methode überschrieben und damit die Oberfläche bzw. die Karte gezeichnet. Sehr wahrscheinlich wurde auch noch ein DoubleBuffering-Mechanismus (Offscreen-Image und update()-Methode) implementiert.
Die Menüs auf der rechten Seite sind Panels, die über die Appletfläche gelegt werden. In den Panels sind die AWT-GUI-Komponenten eingebettet.


----------



## MPW (9. Jan 2006)

Vllt. mal ein kleines Beispiel, aber nur weil mir gerade langweilig ist :lol: 


```
import java.awt.*;
import java.awt.event.*;

class MyFirstApplet extends Applet {
    Button b = new Button("Klick mich!");

    public void init() {
        add(b);
        setVisible(true);
    }
}
```

Dann kannst du halt noch ActionListener einbauen, um auf einen klick zu reagieren....

Du kannst aber schon Java programmieren, oder bist du gerade dabei es zu lernen? Es gibt was in jedem Javabuch Beispiele fuer dies hier, z.B. Java ist auch eine Insel (einfach googeln).


----------



## L-ectron-X (9. Jan 2006)

@MPW: So ähnlich ja.
Du musst das java.applet-Package importieren. Und ein Applet benötigt keinen Aufruf der setVisible()-Methode.
Um dein Applet mit diesen Erkenntnissen neu zu schreiben:

```
import java.applet.*;
import java.awt.*; 
import java.awt.event.*; 

public class MyFirstApplet extends Applet implements ActionListener { 
    private Button b; 

    public void init() { 
        b = new Button("Klick mich!");
        b.addActionListener(this);
        add(b);  
    }

    public void actionPerformed(ActionEvent e) {
        //Mach etwas bei Button-Klick!
    } 
}
```


----------



## MPW (9. Jan 2006)

So ist das halt, wenn man keinen Compiler da hat, da faellt einem das nicht auf....applet zu implementieren vergess ich immer, da ich normaler Weise mit JApplet arbeite und das haengt ja bekanntlich direkt im SwingPackage.


----------

