# Swing Fenster & Applet



## nutzer (18. Mai 2006)

HI leute ich hab eine frage ist es möglich ein Swing Fenster in ein Applet einzubinden?

Wenn Ja wie?


----------



## L-ectron-X (18. Mai 2006)

Du meinst, du willst ein Fenster von einem Applet aus öffnen?
Beispiel-Applet

Ein Thread, in dem so etwas schon mal behandelt wurde: http://www.java-forum.org/de/viewtopic.php?t=18460


----------



## nutzer (18. Mai 2006)

nein das weiß ich wie das geht ich will direkt das das fenster im applet angezeigt wird


----------



## L-ectron-X (18. Mai 2006)

Nein, das geht nicht. Ein Applet ist kein Toplevel-Container.
Du müsstest das Applet dann selbst so zeichnen.


----------



## nutzer (18. Mai 2006)

ok 
Ich weiß nich ob das am browser liegt aber wenn ich das applet mit eclipse ausführ gehts gut und im Browser funktioniert es nicht wenn ich ein neues Swing Fenster öffne


----------



## L-ectron-X (18. Mai 2006)

Hm. Vielleicht reden wir die ganze Zeit aneinander vorbei. ???:L 
Erzähl doch mal ganz von vorne und zeig' doch mal ein paar Codeschnipsel, damit ich weiß, was du da machst.


----------



## nutzer (18. Mai 2006)

Das ist das prog
Ich habs jetzt allerdings so umgeschrieben das sich ein neues fenster öffnet nur im Browser steht immer 
Applet notinited


```
package clients;

import java.awt.Container;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class clientthread extends JApplet
{
	
	public static JTextField na = new JTextField();
    public static JLabel l1 = new JLabel();
    public static JButton b1 = new JButton();
    Socket server ;
    DataInputStream in ; 
    PrintStream ps ; 
    boolean endFlag = false;
  
    /** Creates a new instance of clientthread */
    public clientthread()
    {
       
        try
        {
        	 Socket s = new Socket("127.0.0.1",7788);
        	  in = new DataInputStream(s.getInputStream());
        	  ps = new PrintStream(s.getOutputStream());
              this.start();
        }
        catch (Exception e)
        {
            System.out.println("Err 04: " + e.toString());
            return;
        }
    }
  

    public void init()
    {
        String zeile="";
        int i=0;
     	try
        {
     		    ;
               	final String MSG;
            	MSG = in.readLine();
            	if(MSG!=null)
            	{
            		    final JFrame f =   new JFrame( "Chatclient" );		 
                		f.setLayout(null);	
            			na.setBounds(10,30,80,20);
                		l1.setBounds(10,10,400,10); 
                		b1.setBounds(100,30,150,20);
                		b1.setText("Namen senden");
                		l1.setText(MSG);
                	   
//                		f.getContentPane().add(na);
//                		f.getContentPane().add(l1);    
//                		f.getContentPane().add(b1); 
                		
                		f.add(na);
                		f.add(l1);    
                		f.add(b1);
                		
                		f.setBounds(300,400,380,100);
                		f.setResizable(false);
                		f.setVisible(true);

                		
                		ActionListener al = new ActionListener()
                		{
                			
                			 public void actionPerformed( ActionEvent e )
                		     {
                		    	  ps.println(na.getText()+"\r\n");	    	    	  
                		    	  f.setVisible(false);
                		    	  String test = null;
								try {
									test = in.readLine();
								} catch (IOException e1) {
									// TODO Auto-generated catch block
									e1.printStackTrace();
								}
                		    	    int i = test.indexOf("leider");
									if(i!=-1)
									{
										f.setVisible(true);
										System.out.println("Nickname vorhanden neu eingeben:");
									}
									else
									{
										f.dispose();
										JFrame t = new JFrame();
		                		    	t.getContentPane().setLayout(null);
		                		    	t.setBounds(300,400,500,200);
		                		    	final JTextField z = new JTextField();
		                		    	JButton a = new JButton();
		                		    	a.setBounds(270,170,180,30);
		                		    	z.setBounds(10,10,250,150);
		                		    	t.getContentPane().add(z);
		                		    	t.getContentPane().add(a);
		                		    	a.setText("MSG zum Server senden");
		                		    	t.setVisible(true);
		                		    	try {
											String Server = in.readLine();
											z.setText(Server+"\n"+in.readLine());
										} catch (IOException e1) {
											// TODO Auto-generated catch block
											e1.printStackTrace();
										}
										z.setText("");
										
										ActionListener sl = new ActionListener()
				                		{
											 public void actionPerformed( ActionEvent e )
				                		     {
												 ps.println(z.getText());
												 try {
													 String b = in.readLine();
														while(b != null)
														{
															z.setText(b);
														}
													} catch (IOException e1) {
														// TODO Auto-generated catch block
														e1.printStackTrace();
													}
				                		     }
				                		};
				                		a.addActionListener(sl);
										
										
		                		    }
                		     }
 
                		 };
               		  b1.addActionListener(al);	
	 
                	}   		 

	}
        catch (Exception e)
	{

            System.out.println("Fehler 05: " + e.toString());
	}
        
    }
}
```


----------



## Leroy42 (18. Mai 2006)

L-ectron-X hat gesagt.:
			
		

> Du meinst, du willst ein Fenster von einem Applet aus öffnen?
> Beispiel-Applet



Habe mir das Beispiel-Applet (calculator) mal angesehen.

Um mit Loriot's Worten zu sprechen: _Die Oberfläche sieht sehr übersichtlich aus_.  :shock: 

Ich persönlich, würde allerdings hier und da noch ein paar (kleine) Funktionen einbauen.
 ???:L


----------



## L-ectron-X (18. Mai 2006)

Leroy42, es handet sich ausschließlich um eine Demonstration, wie man mit einem Applet ein Fenster öffnet.
Ich habe dazu den Code aus einem anderen Thread erweitert, um diese Funktionalität zu erzeugen.
Es ging hier also nicht darum ein Programm mit sinnvollen Funktionen bereitzustellen.


----------



## Leroy42 (18. Mai 2006)

Na dann bin ich ja beruhigt.  
[schild=3 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Ich hasse den Gebrauch von Ironie-Tags![/schild]


----------



## nutzer (22. Mai 2006)

Das Beispiel ist allerdings nicht das was ich suche Ich möchte in einem Browser aus dem applet raus ein Fenster 
(Swing Frame) öffnen


----------



## L-ectron-X (22. Mai 2006)

Die Vorgehensweise ist genau die gleiche, nur dass du statt AWT-Komponenten nun Swing-Komponenten benutzen musst. Das ist schon alles.


----------



## Nutzer (22. Mai 2006)

Ok aber ich hab immer noch das problem das mir der browser nichts anzeigt


----------



## L-ectron-X (22. Mai 2006)

Welcher Browser ist das? Und welches JRE benutzt du?
Schau mal in die FAQs, dort gibts einen Beitrag zu Problemen beim Anzeigen von Java-Applets.


----------



## Nutzer (23. Mai 2006)

Im Chat mit L-ectron-X konnte ich das Problem lösen.
Es lag daran, dass ich in der HTML-Datei im Code-Attribut vergessen habe das Package anzugeben.
Im IE geht (Package).(*.Class) das funktioniert aber im FireFox nicht.
Dafür funktioniert aber in allen Browsern (Package)/(*.Class)


----------

