# Mein erstes Applet macht Probleme



## MScalli (26. Feb 2008)

Hi leutz.
Ich hab mich heute das erste mal an Applets gewagt hab echt ein Problem.
Es sollen eigentlich nur paar Buttons auf dem Applet liegen die später mal was aus ner Datenbank lesen/schreiben sollen.
(zu diesem Problem komm ich später 

jetzt mein Problem. Es muss eine Config Datei ausgelesen werden und die Buttons werden je nach inhalt beschriftet usw.

und jetzt der clou.. in Eclipse geht das alles so. nur wenn ich das Applet über ne HTML aufrufe gehts nicht.

Die config Datei liegt in meiner Eclipse Workspace in dem ordner config...

mit der Klasse MyParam lese ich diese Datei ein und stelle Sie zur verfügung..


```
import java.awt.Color;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;


public class MyParam {
 
	static String[] f01, f02, f03, f04, f05, f06, f07, f08, f09, f10;
	MyParam(){
		
		BufferedReader in=null;
		
		try {
                        // in Eclipse funktionieren beide wege. Aber der erste müsste doch eigentlich auch so funktionieren
                        // über URL habe ich es leider noch nicht hin gebracht!!
			in = new BufferedReader( new FileReader("../config/BDE_4.cfg") );
                        //in = new BufferedReader( new FileReader("k:/FerixClient/config/BDE_4.cfg") );
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			for ( String line; (line = in.readLine()) != null; )
			{
				if(line.startsWith("F1,"))
					f01 = line.split(",");
				if(line.startsWith("F2,"))
					f02 = line.split(",");
				if(line.startsWith("F3,"))
					f03 = line.split(",");
					
				System.out.println(line);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}
	public static String[] getF1(){
		return f01;	
	}
	public static Color getF1Color(){
		Color color = new Color(Integer.parseInt(f01[3]),Integer.parseInt(f01[4]),Integer.parseInt(f01[5]));
		return color;	
	}
	public static String[] getF2(){
		return f02;	
	}
	public static Color getF2Color(){
		Color color = new Color(Integer.parseInt(f02[3]),Integer.parseInt(f02[4]),Integer.parseInt(f02[5]));
		return color;	
	}
	public static String[] getF3(){
		return f03;	
	}
	public static Color getF3Color(){
		Color color = new Color(Integer.parseInt(f03[3]),Integer.parseInt(f03[4]),Integer.parseInt(f03[5]));
		return color;	
	}

}
```

und jetzt mein Applett 


```
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

public class BDE extends JApplet
{
	int width, height;
	JButton btnf1, btnf2, btnf3, btnf4, btnf5, btnf6, btnf7, btnf8, btnf9, btnf10;
	JPanel oben, links, rechts;
  
	private static final long serialVersionUID = 1L;
	
		public void init()
	    {
			new MyParam();
			
			width = 800;
			height = 600;
			System.out.println ("Init()"); 
			setSize(800, 400);
			getContentPane();
			
			//************************ Panels *********************************
			
			oben = new JPanel();
			//oben.setBackground(new Color(111,111,111));
			oben.setBounds(0, 0, width, 100);
			add(oben);
			links = new JPanel();
			//links.setBackground(new Color(11,11,11));
			links.setBounds(0, 100, width-100, height-100);
			links.setLayout(null);
			add(links);
			rechts = new JPanel();
			//rechts.setBackground(new Color(22,111,111));
			rechts.setBounds(width-100, height-100, 100, 100);
			add(rechts);

			// *********************** Buttons ********************************
			
			btnf1 = new JButton(MyParam.getF1()[0] + " " + MyParam.getF1()[1]);
			btnf1.setBackground(MyParam.getF1Color());
			btnf1.setActionCommand(MyParam.getF1()[2]);
			btnf1.setHorizontalAlignment(SwingConstants.LEFT);
			btnf1.setBounds(10, 10, 200, 30);
	      	links.add(btnf1);
	      	
			btnf2 = new JButton(MyParam.getF2()[0] + " " + MyParam.getF2()[1]);
			btnf2.setBackground(MyParam.getF2Color());
			//btnf2.setActionCommand(MyParam.getF2()[2]);
			btnf2.setHorizontalAlignment(SwingConstants.LEFT);
			btnf2.setBounds(10, 50, 200, 30);
	      	links.add(btnf2);
	      	
			btnf3 = new JButton(MyParam.getF3()[0] + " " + MyParam.getF3()[1]);
			btnf3.setBackground(MyParam.getF3Color());
			//btnf3.setActionCommand(MyParam.getF3()[2]);
			btnf3.setHorizontalAlignment(SwingConstants.LEFT);
			btnf3.setBounds(10, 90, 200, 30);
	      	links.add(btnf3);
	      	
		this.setVisible(true);
	    }
	    public void start()
	    {
	        System.out.println ("Start()");
	    }
	    public void stop ()
	    {
	       System.out.println ("Stop()");
	    }
	    public void destroy ()
	    {
	       System.out.println ("Destroy()");
	    }

}
```

was kann ich machen???
Ich habe schon einiges im Netz gefunden aber leider hat mich das alles nicht weiter gebracht.

Bin für alle tipps offen!!


----------



## Marco13 (26. Feb 2008)

Wenn man in einem Applet mit Dateien rumfuhrwerken will, muss man i.a. Permissions setzen oder das Applet signieren. Zu beiden Stichworten müßte sich (im Web, aber auch speziell hier im Forum) einiges finden. Wenn nicht, sag bescheid.


----------



## MScalli (26. Feb 2008)

Jo.. das mit dem signieren hab ich schon gelesen.(schon paar mal 
dachte nur das wenn die Datei später in meinem jar file ist das es auch so geht.

aber wenn das schon so ein aufwand ist dann werd ich das glaub mit webstart lösen.
denn wie gesagt, es sollen später noch datenbankabfragen usw. folgen
Muss ich mir jetzt mal durch den kopf gehen lassen.

aber danke dir. 
Mal schaun.. applet oder web-start 
werd mir beide sachen noch mal anschaun, weiss halt nicht was auf die dauer die bessere lösung ist.


----------



## Marco13 (26. Feb 2008)

Wenn die Datei in deiner JAR liegt, brauchst du das Signieren&Permissions setzen NICHT!

Dann kannst du einfach mit 
meinApplet.getClass().getRessource("name");
darauf zugreifen. Aber der "name" muss eben auf einen Pfad verweisen, der im Classpath liegt, und er muss auch relativ dazu angegeben sein. Also, bei getRessource kann man NICHT mit "..\bla" ins übergeordnete Verzeichnis wechseln...


----------



## Wildcard (26. Feb 2008)

Und du kannst die File API nicht verwenden, also auch keinen FileReader.


----------

