# Ich raffs nicht! - Wie mache ich ein einfaches Java-window?



## fan34 (7. Mrz 2010)

Hi,

ich bin ein Neu-Einsteiger im Thema "Java" und kann schon gut PHP.
Nun möchte ich mit Java weitermachen. Ich hoffe, ich bin hier richtig.

Ich weiß nicht, wie ich ein einfaches Java-Window in eine index.html Datei ausführen soll.

Soweit bin ich schon mal:
Window.rar (Download)

Meine Fenster.java:

```
import javax.swing.JFrame;

public class Window extends JFrame {
   public Window() {
      setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); // setzt die Schliessfunktion auf beenden
      
      setLocation( 100, 100 );                          // setzt die Position des Fenster auf 100px x 100px von links oben
      setSize( 500, 400 );                              // setzt die Groesse auf 500px x 400px
      
      setTitle( "Titel" );                              // setzt den Titel auf "Titel"
      
      setVisible( true );                               // macht das Fenster sichtbar
   }
   
   public static void main( String[] args ) {
      new Window();
   }
}
```

Nun weiß ich aber nicht, wo ich z.B. auch den Text da rein schreibe.
Bitte helft mir, ich versteh NICHTS!


----------



## irgendwas (7. Mrz 2010)

Ein JFrame hat eine sog. ContentPane (Ein Panel, dem du alles hinzufügen kannst, was du willst).
Ins Fenster schreiben: Erzeuge ein JLabel
und adde es mit 
	
	
	
	





```
fenster.getContentPane().add(label) // fenster ist ein Objekt deiner Window-Class
```
 der ContentPane deines JFrame. Fertig


----------



## fan34 (7. Mrz 2010)

Und wie verknüpf ich das mit meiner index.html?


----------



## dev (7. Mrz 2010)

Möchtest du ein Applet schreiben? Dann wird es aber kein Window. Oder willst du das ganze über eine JNLP starten.

Gruß

dev


----------



## fan34 (7. Mrz 2010)

was ist ein JNLP, also ein Java Network Launching Protocol?


----------



## dev (7. Mrz 2010)

Genau, da könntest du einen Link in deine Seite einbauen. Wenn man drauf klickt wird die Anwendung normal gestartet, wie eine normale Anwendung.

Gruß

dev


----------



## fan34 (7. Mrz 2010)

Dann so 
Muss ich dann alles nochmal schreiben?

Kannst Du oder jemand von euch mir dazu die .java - Datei geben?
& dazu den HTML Code zum Ausführen.

(Ich versteh es trotzdem nicht, aber wird schon richtig sein)


----------



## dev (7. Mrz 2010)

Schau mal hier
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 16 Grafische Oberflächen mit Swing

Da wird dir alle Grundlagen erklärt was GUI-Programmierung angeht. Wie Buttons und Textfelder, Labels und so funkionieren.

Und hier wird die JNLP und Java Webstart erklärt. 

Deploying a Java Web Start Application (The Java™ Tutorials > Deployment > Java Web Start)

Gruß

dev


----------



## fan34 (7. Mrz 2010)

Cool, der zweite Link hat mir weitergeholfen, zu verstehen, was Du meinst.

Wie programmier ich das* bei mir ein?


(* Mein einfaches Window + Text)


----------



## dev (7. Mrz 2010)

Du musst dazu nichts bei dir einprogrammieren. Du musst eine solche jnlp-Datei anlegen. Die Inhalte siehst du auf der einen Seite. 
Und dann musst du es noch in deine html-Seite einbinden und das wird da auch gezeigt. 

Gruß

Sascha


----------



## fan34 (7. Mrz 2010)

Ich hab mir das jetzt gedownloadet.
Hilfe gesucht. :bahnhof:


----------



## dev (7. Mrz 2010)

Was möchtest du denn noch wissen?

Gruß

dev


----------



## fan34 (7. Mrz 2010)

wie ich z.b. die class Dateien ändern kann.


----------



## andiv (7. Mrz 2010)

Ich glaube bei dir liegen noch eine Menge Missverständnisse vor. Du kommst also aus der PHP-Ecke, richtig? Dann vergess am besten erstmal alles was du über PHP gelernt hast.

Java ist keine Skriptsprache, die geparst wird, sondern eine Programmiersprache bei der ein Compiler (javac.exe) den Quelltext (Klassenname.java) in Bytecode (Klassenname.class) übersetzt, welcher anschließend von der Java Virtual Machine (java.exe) ausgeführt werden kann.

Zur Entwicklung mit Java benötigst du das Java Development Kit (JDK) welches man bei Sun/Oracle herunterladen kann. Es gibt im Internet kostenlose Ebooks (Handbuch der Java-Programmierung und Java ist auch eine Insel), da solltest du erstmal ein wenig lesen bevor du hier mit Fragen stellen anfängst.

Normalerweise programmiert man als Anfänger erstmal Konsolenanwendungen ohne grafische Oberfläche. Bei dir hab ich aber sowieso das Gefühl als wölltest du gar keine Desktopanwendungen schreiben sondern Java anstelle von PHP zur Erzeugung dynamischer Webseiten benutzen. In dem Fall solltest du dich mal ein wenig über Java Server Pages und dergleichen informieren, weil du da mit Swing (JFrame, JPanel, JLabel, etc.) völlig auf dem falschen Weg bist.


----------



## fan34 (7. Mrz 2010)

Hier bin ich richtig, weil nirgendwo anders bekomm ich das so gut erklärt, wie von euch -gg-

javac.exe, was ist dieses Programm und wo bekomm ich das her?


----------



## dev (7. Mrz 2010)

Oh, ich bin davon ausgegangen, dass du das ganze weißt. 

Schau mal hier
Java SE Downloads - Sun Developer Network (SDN)

Musst du nur noch eine Platform auswählen, dann kannst du das JDK runterladen.

Den Link zu Java ist auch eine Insel habe ich dir oben schon gepostet. Da wird auch erklärt was Java genau ist und wie es funktioniert, wie du Java-Dateienc kompilierst und ausführst. 

Gruß

dev


----------



## fan34 (7. Mrz 2010)

Sowas wie z.B. Eclipse?


----------



## dev (7. Mrz 2010)

Eclipse ist eine Entwicklungsumgebung, genau wie Netbeans und IntelliJ IDEA. Diese IDEs vereinfachen das entwickeln von Java-Programmen. Diese brauchst du aber nicht unbedingt. Das wichtigste ist das JDK. 


Gruß

dev


----------



## fan34 (7. Mrz 2010)

Ist dieses Javac.exe kostenpflichtig?


----------



## 0x7F800000 (7. Mrz 2010)

nein


----------



## dev (7. Mrz 2010)

Nein, es gibt auch nicht nur javac.exe einzeln zum download. Das ganze nennt sich Java Development Kit (JDK). Den Link wo du es runterladen kannst, hab ich oben gepostet. Einfach runterladen und installieren.

Gruß

dev


----------



## fan34 (7. Mrz 2010)

Jetzt hab ich die Javac.exe. Bin da auch registriert, aber was jetzt?


----------



## dev (7. Mrz 2010)

Schau doch mal in dem Buch nach, was ich dir gepostet habe, da steht doch alles drin. 
Ich kann dir doch hier keinen Einsteigerkurs Java geben.


Gruß

dev


----------



## andiv (7. Mrz 2010)

Les dir doch endlich mal "Java ist auch eine Insel" oder das "Handbuch der Java-Programmierung" durch. Beide findest du in wenigen Sekunden mit der Suche deiner Wahl. Beide sind kostenlos und beide erklären alles was nötig ist um mit der Java-Programmierung anzufangen.

Erwarte nicht von uns, dass wir dir erklären, was du in 5 Minuten durch LESEN selbst rausfinden kannst.


----------



## faetzminator (7. Mrz 2010)

Wenn in der cmd die Aufrufe [c]java -version[/c] und [c]javac -version[/c] Versionsnummern ausgeben läuft alles korrekt


----------



## fan34 (8. Mrz 2010)

So, ich bin jetzt soweit gekommen:





Und wenn ich das richtig verstanden habe, kann ich das Fenster nicht mit HTML öffnen, sondern nur, wenn man iwo draufklickt?*


(* JNLP)


----------



## quivadis (8. Mrz 2010)

Was willst du eigentlich machen? 

Eine Webseite erstellen, eine Anwendung schreiben oder eine Server schreiben?

Ich habe das Gefühl das du keine Ahnung hast was du machst.

Du willst scheinbar eine Webseite bzw. ein Webangebot erstellen. Dazu eignet sich aber Javascript besser als Java.

Oder willst du ein Applet erzeugen,dann ist Java richtig.

ACHTUNG   JAVA IST NICHT JAVASCRIPT!

Lies Dir doch einmal die ersten Seiten in den hier schon erwähnten Büchern durch, das beantwortet Deine Fragen.


----------



## 0din (8. Mrz 2010)

Du schreibst grad ein programm... offline, nix mit internet, nix mit firefox, nix mit IE!

Wenne das willst musste umsteigen auf nen Applet oder javascript... un javascript is wieder ne total andere geschichte!

un den ultimativen tipp für dich anfänger hat dev dir schon HIER gegeben!


----------



## Semox (8. Mrz 2010)

fan34 hat gesagt.:


> Hier bin ich richtig, weil nirgendwo anders bekomm ich das so gut erklärt, wie von euch -gg-
> 
> javac.exe, was ist dieses Programm und wo bekomm ich das her?



Ist blöd wenn die Zeit drängt. Dann kommt es zu solchen famosen Fragen... Ich verstehe das...

EDIT: Nun rede mal Tacheles. Was willst Du denn machen? Was ist das Ziel Deiner Fragen?? 

Gruß,
Semo


----------



## fan34 (9. Mrz 2010)

quivadis hat gesagt.:


> Was willst du eigentlich machen?
> 
> Eine Webseite erstellen, eine Anwendung schreiben oder eine Server schreiben?
> 
> ...



Ich weiß das Java nicht Javascript ist, Javascript kann ich ohne Probleme.

--
Ich will jetzt einfach wissen, ob ich den Window mit HTML öffnen kann.


----------



## Otzelot (9. Mrz 2010)

Wenn es KEIN Java Applet ist, dann gar nicht. Mach ein Applet raus und dann kannst du das ganze auch einfach einbinden.


----------



## fan34 (9. Mrz 2010)

Otzelot hat gesagt.:


> Wenn es KEIN Java Applet ist, dann gar nicht. Mach ein Applet raus und dann kannst du das ganze auch einfach einbinden.



Also kann ich es, indem ich ein Applet-Tag einbaue ôo
Nehmen wir an, der Applet-Tag ist eingebaut. 

Die JAR & Class hau ich zusammen in den selben Ordner mit der index.html.
Dann öffnet sich das Java-Window aber trotzdem nicht


----------



## faetzminator (9. Mrz 2010)

Du musst dann nicht mehr von [c]JFrame[/c] (Swing) oder [c]Frame[/c] (AWT) erben (oder eine Instanz davon erzeugen), sondern von [c]JApplet[/c] bzw. [c]Applet[/c]. Mehr Infos findest du z.B. unter Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 21 Applets.


----------



## 0x7F800000 (10. Mrz 2010)

faetzminator hat gesagt.:


> Du musst dann nicht mehr von [c]JFrame[/c] (Swing) oder [c]Frame[/c] (AWT) erben (oder eine Instanz davon erzeugen), sondern von [c]JApplet[/c] bzw. [c]Applet[/c]. Mehr Infos findest du z.B. unter Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 21 Applets.



Oder Applikationen über JNLP starten, oder das Applet wie ein einziges Button aussehen lassen, welches beim drücken das gewohnte Fenster aufruft, oder das applet unsichtbar machen, und das fenster gleich beim initialisieren aufrufen, oder sonstwas... 

Was willst du denn mit so einem Fenster überhaupt, wenn du dich mit Java nicht auskennst?

Meine private meinung: Applets die zusätzliche Fenster öffnen nerven, diese aufpoppende Fensterchen will man doch immer nur reflexartig wegklicken...


----------



## Semox (10. Mrz 2010)

Otzelot hat gesagt.:


> Wenn es KEIN Java Applet ist, dann gar nicht. Mach ein Applet raus und dann kannst du das ganze auch einfach einbinden.



Hallo Otzelot

Was ist mit dem Sun Java Webloader? Der kann doch auch Desktop Applikationen wie ein Bean bzw. Applet laufen lassen, oder?

Gruß,
Semo


----------



## Semox (10. Mrz 2010)

fan34 hat gesagt.:


> Also kann ich es, indem ich ein Applet-Tag einbaue ôo
> Nehmen wir an, der Applet-Tag ist eingebaut.
> 
> Die JAR & Class hau ich zusammen in den selben Ordner mit der index.html.
> Dann öffnet sich das Java-Window aber trotzdem nicht



Hat Dein Quelltext irgendwo eine 
	
	
	
	





```
package irgendwas;
```
 Anweisung drin? Das könnte Deinen Browser davon abhalten es zu laden...

Vielleicht ist auch was in der HTML Seite was falsch. Hier ist ein Beispiel:

SELFHTML: HTML/XHTML / Multimedia / Java-Applets einbinden (herkömmlich)

Viele Grüße,
Semo

P.S. Es wird nur die *.class file gebraucht.


----------



## L-ectron-X (10. Mrz 2010)

0x7F800000 hat gesagt.:


> oder das Applet wie ein einziges Button aussehen lassen, welches beim drücken das gewohnte Fenster aufruft...


Sowas habe ich hier schon mal gepostet: http://www.java-forum.org/deploymen...utton-starten-jframe-anzeigen.html#post105367


----------



## fan34 (10. Mrz 2010)

Wollt ihr mir damit sagen, dass der Java-Code

```
import java.applet.Applet; 

public class Window extends Applet {
   public Window() {
	  setDefaultCloseOperation( Applet.EXIT_ON_CLOSE );
      
      setLocation( 100, 100 );
      setSize( 500, 400 );
      
      setTitle( "Titel" );
      
      setVisible( true );
   }
   
   public static void main( String[] args ) {
      new Window();
   }
}
```

heißen müsste?


----------



## 0din (10. Mrz 2010)

fast, beim applet kannste dir nu so einiges schenken... z.b. die position, die hängt nämlich von deiner html page ab und nicht mehr vom applet... im übrigen würde ich setSize auf setPreferedSize ändern, das ist weniger statisch... überleg dir mal was davon noch alles unnötig is


----------



## Otzelot (10. Mrz 2010)

Semox hat gesagt.:


> Was ist mit dem Sun Java Webloader? Der kann doch auch Desktop Applikationen wie ein Bean bzw. Applet laufen lassen, oder?



Ganz ehrlich: Sagt mir nichts und google spuckt nichts brauchbares aus. Was ist das genau und lässt es sich denn einfach implementieren? 

Eine Main-Methode ist bei einem Applet auch nicht nötig. Ich bitte dich doch nochmals darum genauer zu sagen, was du überhaupt machen willst, dann können wir dir auch viel besser helfen.


----------



## fan34 (11. Mrz 2010)

Otzelot hat gesagt.:


> Ich bitte dich doch nochmals darum genauer zu sagen, was du überhaupt machen willst, dann können wir dir auch viel besser helfen.



Das sich beim Öffnen der index.html dieses Wunderschoene Fenster öffnet:


----------



## Otzelot (12. Mrz 2010)

Wenn es wirklich nur das sein soll:

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


public class TestApplet extends JApplet implements Runnable {
	
	public void init(){
		JFrame fenster = new JFrame("Titel");
		fenster.setVisible(true);
		fenster.setSize(800,600);
		fenster.setLocation(100,100);
	}
	
	public void start(){

	}
	public void run(){

	}
	
	public void stop(){
		
	}
	
	public void destroy(){
		
	}
	
	public void paint(Graphics g){

	}
}
```

Und die index.html dazu:


```
<html>
 <head>
  <title>Test Fenster</title>
 </head>

 <body>
  <applet code="TestApplet.class" width="0" height="0">
  </applet>
 </body>
</html>
```

"width" und "height" spielen keine Rolle da du ja sowieso ein neues Fenster öffnen willst.


----------



## fan34 (12. Mrz 2010)

Otzelot hat gesagt.:


> Wenn es wirklich nur das sein soll:
> 
> ```
> import javax.swing.*;
> ...



Vielen Dank, kann ich da auch noch einen Text einfügen?


----------



## Ein Keks (12. Mrz 2010)

was soll das 
	
	
	
	





```
implements Runnable
```
 bitte bringen? :autsch:



			
				fan34 hat gesagt.:
			
		

> kann ich da auch noch einen Text einfügen?




```
public class TestApplet extends JApplet {
    
    public void init(){
        JFrame fenster = new JFrame("Titel");
        fenster.add(new JLabel("Hier könnte deine Werbung stehen!"));
        fenster.setSize(800,600);
        fenster.setLocation(100,100);
        fenster.setVisible(true);
    }
}
```


----------



## fan34 (12. Mrz 2010)

Okay, funktioniert. Thema erledigt. Mehr wollt ich nicht! ;D


----------



## Otzelot (12. Mrz 2010)

Ein Keks hat gesagt.:


> was soll das
> 
> 
> 
> ...



Eigentlich nix. Ist einfach nur in meinem "Standard Eingabeformular für Applets"  und hab ich demnach auch vergessen rauszunehmen


----------



## fan34 (3. Sep 2010)

Hi,

kann ich da auch noch ein Hintergrundbild einbauen?


----------



## Schandro (3. Sep 2010)

fan34 hat gesagt.:


> kann ich da auch noch ein Hintergrundbild einbauen?



ja, wenn du Java lernen willst und viel Zeit mitbringst, dann kannst du damit machen was du willst. 
Les dazu einfach das "Java Handbuch" oder die Insel durch... tschuldigung das wir dir hier keine Komplettlösungen (mehr) liefern, aber das ist nicht der Sinn von diesem Forum.


----------



## fan34 (3. Sep 2010)

```
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.net.*;
import javax.imageio.ImageIO;

 
 
public class omg extends JApplet implements Runnable {
    
    public void init(){
        JFrame fenster = new JFrame("Copyright");
        fenster.setVisible(true);
        fenster.setSize(800,600);
        fenster.setLocation(100,100);
        fenster.add(new JLabel("This chat ist under a copyright of the user fan34"));
        fenster.setContentPane(new BackgroundPanel());

    }
    
    class BackgroundPanel extends JPanel
    {
        Image image;
     
        public BackgroundPanel()
        {
            loadImage();
            setBackground(Color.yellow);
        }
     
        public void paintComponent(Graphics g)
        {
            super.paintComponent(g);
            int width = getWidth();
            int height = getHeight();
            int imageWidth = image.getWidth(this);
            int imageHeight = image.getHeight(this);
            int x = (width - imageWidth)/2;
            int y = (height - imageHeight)/2;
            g.drawImage(image, x, y, this);
        }
     
        private void loadImage()
        {
            String fileName = "images/Profile.png";
            try
            {
                URL url = getClass().getResource(fileName);
                image = ImageIO.read(url);
            }
            catch(MalformedURLException mue)
            {
                System.out.println(mue.getMessage());
            }
            catch(IOException ioe)
            {
                System.out.println(ioe.getMessage());
            }        
        }
    }
    
    public void start(){
 
    }
    public void run(){
 
    }
    
    public void stop(){
        
    }
    
    public void destroy(){
        
    }
    
    public void paint(Graphics g){
 
    }
}
```


Also wenn ich das mache stürzt Java ab.

Beachtet, ich möchte es mit HTML öffnen!


----------



## XHelp (3. Sep 2010)

Was heißt denn "stürzt java ab"?


----------



## fan34 (7. Mrz 2010)

Hi,

ich bin ein Neu-Einsteiger im Thema "Java" und kann schon gut PHP.
Nun möchte ich mit Java weitermachen. Ich hoffe, ich bin hier richtig.

Ich weiß nicht, wie ich ein einfaches Java-Window in eine index.html Datei ausführen soll.

Soweit bin ich schon mal:
Window.rar (Download)

Meine Fenster.java:

```
import javax.swing.JFrame;

public class Window extends JFrame {
   public Window() {
      setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); // setzt die Schliessfunktion auf beenden
      
      setLocation( 100, 100 );                          // setzt die Position des Fenster auf 100px x 100px von links oben
      setSize( 500, 400 );                              // setzt die Groesse auf 500px x 400px
      
      setTitle( "Titel" );                              // setzt den Titel auf "Titel"
      
      setVisible( true );                               // macht das Fenster sichtbar
   }
   
   public static void main( String[] args ) {
      new Window();
   }
}
```

Nun weiß ich aber nicht, wo ich z.B. auch den Text da rein schreibe.
Bitte helft mir, ich versteh NICHTS!


----------



## fan34 (3. Sep 2010)

Dies ist ein Beispiel aus einem anderen Javadingens, was ich geöffnet hatte.
Also, alle in Javageöffneten Dateien schließen sich.


----------



## XHelp (3. Sep 2010)

"ein anderes Javadingens, was ich geöffnet hatte". Im ernst?
Was ist wenn du es aus Eclipse oder so startest, bekommst du vllt exceptions?


----------



## fan34 (3. Sep 2010)

java.lang.IllegalArgumentException: input == null!
	at javax.imageio.ImageIO.read(Unknown Source)
	at omg$BackgroundPanel.loadImage(omg.java:49)
	at omg$BackgroundPanel.<init>(omg.java:27)
	at omg.init(omg.java:17)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)


----------



## XHelp (3. Sep 2010)

Dann kann dein Applet dein Bild nicht finden.


----------



## fan34 (3. Sep 2010)

Jetzt hab ich das mal angepasst, es öffnet sich das Fenster was sich öffnen soll, ohne Hintergrundbild. (von eclipse aus)

Und im Webverzeichnis war das ja schon angepasst.

Problem bleibt also weiterhin erhalten!


----------

