# Einstellungen verwalten



## Whitey (23. Mrz 2007)

Hi,

ich möchte die Einstellungen meiner GUI speichern. Ich hab das mit einer XML-Datei versucht, von der aus ich die momentanen Einstellungen auslese und geänderte Einstellungen reinschreibe. Das Problem dabei ist, dass ich die java.policy Datei abändern muss um das zu tun. Sonst bekomme ich eine accessControlException. Das ist ziemlich unpraktisch, da die GUI auch auf anderen Rechnern unter anderen JRE's laufen soll.

Im Moment speichert mein Programm die XML-Konfigurationsdatei immer im jeweiligen Benutzerprofil.

Es muss doch einfachere Möglichkeiten geben die Einstellungen zu verwalten, ohne das die policy geändert werden muss.

Wie kann man das angehen und wo kann ich mir das Wissen dazu aneignen(Links bevorzugt :wink: ).

Viele Grüße


----------



## Wildcard (23. Mrz 2007)

Ist das ein Applet, oder Webstart?
Sonst hast du nämlich Vollzugriff.
Für die oben genannten Möglichkeiten musst du dein jar lediglich signieren.


----------



## Whitey (23. Mrz 2007)

Mein Programm ist ein Browser unabhängiges Applet.

Das signieren der Jar habe ich schon versucht hatte keine Wirkung. Das Banner ist auch nicht verschwunden. Aber vllt. habe ich da auch was falsch gemacht. Habe das nach folgendem Tutorial signiert.

http://forum.java.sun.com/thread.jspa?threadID=174214&start=0

Also hab mir mein eingenes kleines Test-Zertifikat geschrieben. Nicht von veriSign oder Thawte zertifiziert. Vllt. liegt es auch daran? Oder was muss man sonst noch beachten, wenn man eine Jar signiert. Btw. Step 9 hab ich nicht ausgeführt.


----------



## Whitey (23. Mrz 2007)

Ok ich hab eventuell den Fehler gefunden. Ich benutze noch eine andere Jar die ich nicht signiert habe. Werde es gleich mal testen, ob es daran lag.


----------



## Whitey (23. Mrz 2007)

Zu früh gefreut, trotz der Signatur aller benutzten Jars habe ich keinen Vollzugriff auf das Benutzerprofil und muss die java.policy ändern um keine accessControlException zu bekommen.


----------



## Wildcard (24. Mrz 2007)

Wenn es noch nicht funktioniert muss noch was an der Signatur/jar eigenen Policy falsch sein.


----------



## L-ectron-X (24. Mrz 2007)

Für Applets, die eine erweiterte Zugriffsberechtigung benötigen, braucht normalerweise keine Policy geändert/angepasst werden. Applet einfach signieren, dann sollte der Benutzer das Fenster zur Bestätigung des Zertifikats eingeblendet bekommen. Möglicherweise hast du auch das Applet falsch in die HTML-Seite eingebunden.
In den FAQs gibts einen Thread zur Signierung von Applets.


----------



## Whitey (26. Mrz 2007)

Danke für eure Hilfe. Hab die Geschichte mit der HTML gar nicht gemacht, werde ich gleich mal ausprobieren.


----------



## Whitey (26. Mrz 2007)

Wofür brauche ich eigentlich eine HTML Datei? Meine App soll als *standalone App* laufen. Muss die auch signiert werden, damit ich volle Zugriffsrechte auf die Dateien im Benutzerprofil erhalte?

Auf jedenfall möchte ich das "Java Applet Window"-Banner wegbekommen, ohne in die Java-Policy "showWindowWithoutWarningBanner" einzutragen.

Muss ich eine eigene Policy-Datei schreiben?


----------



## Wildcard (26. Mrz 2007)

Whitey hat gesagt.:
			
		

> Wofür brauche ich eigentlich eine HTML Datei? Meine App soll als *standalone App* laufen. Muss die auch signiert werden, damit ich volle Zugriffsrechte auf die Dateien im Benutzerprofil erhalte?
> 
> Auf jedenfall möchte ich das "Java Applet Window"-Banner wegbekommen, ohne in die Java-Policy "showWindowWithoutWarningBanner" einzutragen.
> 
> Muss ich eine eigene Policy-Datei schreiben?


 :bahnhof:  :bahnhof:  :bahnhof: 
Warum sagst du dann es handelt sich um ein Applet?
Warum passt du für eine Applikation die Java Policy an?  :bahnhof:


----------



## Whitey (26. Mrz 2007)

Sry, zu diesem Zeitpunkt habe ich noch gedacht das das ein Applet war. Da ich halt dieses Zugriffsproblem habe, dachte ich das mein Programm auch unter der Bezeichnung Applet läuft.

Woran kann das denn jetzt liegen das ich in dem Benutzerprofil keine vollen Zugriffsrechte habe?


----------



## Wildcard (26. Mrz 2007)

Vielleicht weil du die Finger nicht von der Java Policy lassen konntest, die man nicht ändern sollte wenn man nicht weiß was man tut?  :wink:


----------



## Whitey (26. Mrz 2007)

Ne ne so kompliziert ist das ja nu auch nicht. :wink: 

Auch wenn ich die Jre neu installiere läuft es nicht. Und dieses "Java Applet Window"-Banner ist auch jedesmal da, wenn ich die Jar aufrufe.

Ich weiß nicht mehr weiter. So wie ich die Geschichte verstanden habe sollte das eigentlich gar nicht auftauchen, weil es ja im Prinzip gar kein Applet ist. Dasselbe gilt für den Dateizugriff.


----------



## Wildcard (26. Mrz 2007)

Welches Java Applet Window Banner?


----------



## Leroy42 (26. Mrz 2007)

Whitey meint den Warnhinweis, daß sich bei einem,
aus dem Applet heraus geöfneten Fenster, um ein
Fenster eines Applets handelt.

Diesen Hinweis bekommst du nur mit signierten Applets weg,
da er aus Sicherheitsgründen einen Anwender warnt, daß es
sich bei diesem Fenster um KEIN Systemfenster handelt.


----------



## Wildcard (26. Mrz 2007)

Leroy42 hat gesagt.:
			
		

> Diesen Hinweis bekommst du nur mit signierten Applets weg,
> da er aus Sicherheitsgründen einen Anwender warnt, daß es
> sich bei diesem Fenster um KEIN Systemfenster handelt.


Aber er hat doch gar kein Applet  :bahnhof:


----------



## Whitey (26. Mrz 2007)

Naja wenn das JFrame Fenster startet, dann zeigt das Fenster unten ein Banner auf dem steht "Java Applet Window". Das ist ziemlich unpraktisch weil dann die Anordnung meiner Komponenten ducheinander gerät.


----------



## Leroy42 (26. Mrz 2007)

Whitey hat gesagt.:
			
		

> Das ist ziemlich unpraktisch weil dann die Anordnung meiner Komponenten ducheinander gerät.



... aber warnt den User eben davor, daß es sich um ein, von einem
Applet erzeugtes, Fenster handelt.

Wenn du dies dem User ersparen willst, bleibt dir nichts anderes
übrig, als ihn aufzufordern, dein Applet zu signieren.

Am einfachsten weist du ihn darauf auf deiner HTML-Seite hin.


----------



## Wildcard (26. Mrz 2007)

Du machst da sehr seltsame Dinge. :shock: 
Wenn du einfach einen neue Klasse schreibst die von JFrame erbt, dann kommt da mit Sicherheit kein solches Banner, was ist an deinem Code also anders?


----------



## Leroy42 (26. Mrz 2007)

Wildcard hat gesagt.:
			
		

> Du machst da sehr seltsame Dinge. :shock:



Das finde ich gar nicht seltsam, sondern angenehmer für den User.

In meinen Applets habe ich (fast) immer einen Button 

"Hol mich hier raus!"

der das Applet dann in ein separates Fenster packt und dem User
beliebige Verschiebungen und Größenveränderungen erlaubt.

Der Name des Buttons ändert sich dann übrigens zu

"Ich will nach Hause :-("


----------



## Wildcard (26. Mrz 2007)

@Leroy42
Der OP möchte aber (nach seiner Aussage) kein Applet sondern eine Applikation haben.


----------



## Leroy42 (26. Mrz 2007)

Leroy42 hat gesagt.:
			
		

> "Hol mich hier raus!"



Da fällt mir gerade ein, daß ich das schon geschrieben
habe, bevor RTL das wiederverwendet hat.

Hätte ich den Spruch damals eigentlich patentieren
lassen können und dann RTL 'ne kostenpflichtige
Abmahnung verpassen können??
 ???:L


----------



## Leroy42 (26. Mrz 2007)

Whitey hat gesagt.:
			
		

> Mein Programm ist ein Browser unabhängiges Applet.


----------



## Wildcard (26. Mrz 2007)

Whitey hat gesagt.:
			
		

> Wofür brauche ich eigentlich eine HTML Datei? Meine App soll als *standalone App* laufen.


----------



## Whitey (26. Mrz 2007)

Leroy ich habe kein Applet. Ich programmiere gerade eine GUI die auf Swing Komponenten basiert. Jede Klasse die mit der Anzeige zu tun hat, erbt von JFrame. Es gibt keine Klasse die von JApplet erbt.

Ich weiss nicht was an meinem Code anders ist. :?: 


```
public class GUI extends JFrame
```


```
public class SettingsWindow extends JFrame
```


```
public class ServerNotFoundWindow extends JFrame
```


```
public class TabUserData extends JPanel
```

Ich hab im ganzen Projekt kein Applet....ich schwöre...

Das JPanel hat doch damit nichts zu tun oder?

[/code]


----------



## Wildcard (26. Mrz 2007)

Mach eine neue Klasse die nichts macht als einen JFrame zu öffnen und schau nach ob der Banner dann auch kommt.


----------



## Whitey (26. Mrz 2007)

Nein. da kommt dieses Banner nicht. Ok, was kann das also sein?

Wahrscheinlich benutze ich irgendwelche Komponenten die eine Signierung erfordern oder? Unabhängig davon, ob es jetzt in eine Webseite integriert wird oder als "standalone" läuft.


----------



## Wildcard (26. Mrz 2007)

Eine Applikation muss niemals signiert sein, da sie bereits alle Rechte des Users hat der sie ausführt.
Die Signatur ist nur bei Webstart und Applets interessant.
Keine Ahnung was du da seltsames drehst.


----------



## Whitey (26. Mrz 2007)

Also ich hab noch folgendes herausgefunden. Der JFrame GUI (den ich mir bis jetzt nicht hab anzeigen lassen, weil der server nicht lief) hat dieses Banner auch nicht.



```
public class SettingsWindow extends JFrame
 
public class ServerNotFoundWindow extends JFrame
 
Das sind die die beiden Klassen bei denen das Banner angezeigt wird. 

Die werden je nach Bedarf innerhalb des Programms erzeugt. Halt wenn keine Serververbindung besteht oder um die Einstellungen zu ändern. 

Da fällt mir gerade auf, die einzige Klasse die auf Dateien im Benutzerprofil zugreift ist eben diese Settings-Klasse. 

Kann man jetzt ableiten, was er zu meckern hat?
```


----------



## Wildcard (26. Mrz 2007)

Nicht ohne Code. Du musst irgendwas verrücktes machen, sowas habe ich noch nie vorher gehört.


----------



## Whitey (26. Mrz 2007)

Hier sind die beiden Klassen bei denen das auftritt.


```
public class ServerNotFoundWindow extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JTextField tfServerNotFound = null;
	
	private int screenWidth;
	private int screenHeight;
	private boolean close = false;
	private GUI guiFrame;

	private JPanel plButtons = null;

	private JButton btnSettings = null;

	private JButton btnCancel = null;

	/**
	 * This is the default constructor
	 */
	public ServerNotFoundWindow(Dimension d,GUI guiFrame) {
		super();
		this.screenWidth = d.width;
		this.screenHeight = d.height;
		this.guiFrame = guiFrame;
		initialize();

	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(390, 110);
		this.setBackground(Color.gray);
		this.setResizable(false);
		this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource(Resource.getResource("ServerNotFoundWindow.SmallCromaIcon")))); //$NON-NLS-1$
		this.setContentPane(getJContentPane());
		this.setTitle(Resource.getResource("ServerNotFoundWindow.ServerConnectError")); //$NON-NLS-1$
		this.setLocation((screenWidth-this.getSize().width)/2, (screenHeight-this.getSize().height)/2);
		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
/*		try{
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
			}
			catch
				( Exception e ) { e.printStackTrace();
			}*/
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			BorderLayout borderLayout = new BorderLayout();
			borderLayout.setHgap(0);
			borderLayout.setVgap(7);
			jContentPane = new JPanel();
			jContentPane.setLayout(borderLayout);
			jContentPane.setBackground(new Color(108, 108, 108));
			jContentPane.add(getTfServerNotFound(), BorderLayout.CENTER);
			jContentPane.add(getPlButtons(), BorderLayout.SOUTH);
		}
		return jContentPane;
	}

	/**
	 * This method initializes tfServerNotFound	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getTfServerNotFound() {
		if (tfServerNotFound == null) {
			tfServerNotFound = new JTextField();
			tfServerNotFound.setEditable(false);
			tfServerNotFound.setHorizontalAlignment(JTextField.CENTER);
			tfServerNotFound.setFont(new Font("Tahoma", Font.BOLD, 12)); //$NON-NLS-1$
			tfServerNotFound.setForeground(Color.white);
			tfServerNotFound.setBackground(new Color(108,108, 108));
			tfServerNotFound.setText(Resource.getResource("ServerNotFoundWindow.MsgServerConnectError")); //$NON-NLS-1$
		}
		return tfServerNotFound;
	}
	
	/**
	 * Prüft Variable close	
	 * 	
	 * 	
	 */
	public boolean isClose() {
		return close;
	}

	/**
	 * This method initializes plButtons	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getPlButtons() {
		if (plButtons == null) {
			GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
			gridBagConstraints1.insets = new Insets(0, 0, 7, 0);
			GridBagConstraints gridBagConstraints = new GridBagConstraints();
			gridBagConstraints.gridx = 1;
			gridBagConstraints.insets = new Insets(0, 70, 7, 0);
			gridBagConstraints.gridy = 0;
			plButtons = new JPanel();
			plButtons.setLayout(new GridBagLayout());
			plButtons.setBackground(new Color(108, 108, 108));
			plButtons.add(getBtnSettings(), gridBagConstraints1);
			plButtons.add(getBtnCancel(), gridBagConstraints);
		}
		return plButtons;
	}

	/**
	 * This method initializes btnSettings	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtnSettings() {
		final JFrame frame = this;
		if (btnSettings == null) {
			btnSettings = new JButton();
			btnSettings.setPreferredSize(new Dimension(125, 17));
			btnSettings.setBackground(new Color(204,204,204));
			btnSettings.setFont(new Font("Verdana", Font.BOLD, 12));
			btnSettings.setText(Resource.getResource("ServerNotFoundWindow.Settings")); //$NON-NLS-1$
			btnSettings.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					SettingsWindow settings = new SettingsWindow(guiFrame);
					settings.setLocation((screenWidth-settings.getSize().width)/2, (screenHeight-settings.getSize().height)/2);
					frame.dispose();
					settings.setVisible(true);
				}
			});
		}
		return btnSettings;
	}

	/**
	 * This method initializes btnCancel	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtnCancel() {
		final JFrame frame = this;
		if (btnCancel == null) {
			btnCancel = new JButton();
			btnCancel.setPreferredSize(new Dimension(125, 17));
			btnCancel.setBackground(new Color(204,204,204));
			btnCancel.setFont(new Font("Verdana", Font.BOLD, 12));
			btnCancel.setText(Resource.getResource("ServerNotFoundWindow.Cancel")); //$NON-NLS-1$
			btnCancel.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					frame.dispose();
					guiFrame.dispose();
				}
			});
		}
		return btnCancel;
	}
}
```


```
public class SettingsWindow extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JPanel plURL = null;

	private JLabel lbURL = null;

	private JLabel lbURLHost = null;

	private JRadioButton rbURL = null;

	private JRadioButton rbURLHost = null;

	private JPanel plButtons = null;

	private JButton btnOK = null;

	private JButton btnCancel = null;

	private JPanel plLanguage = null;

	private JLabel lbLanguage = null;

	private JComboBox cbLanguage = null;
	
	private GUI guiFrame=null;

	private JTextField tfURLName = null;
	
	private boolean isFileExist = true;
	
	/**
	 * This a constructor with the GUI
	 */
	public SettingsWindow(GUI guiFrame) {
		super();
		this.guiFrame = guiFrame;
		initialize();
	}
	
	/**
	 * This is the default constructor
	 */
	public SettingsWindow(boolean isFileExist){
		super();
		this.isFileExist = isFileExist;
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(365, 150);
		this.setContentPane(getJContentPane());
		this.setTitle(Resource.getResource("SettingsWindow.Settings")); //$NON-NLS-1$
		this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource(Resource.getResource("SettingsWindow.TitleImageURL"))));
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
	}	
	
	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			GridBagConstraints gridBagConstraints31 = new GridBagConstraints();
			gridBagConstraints31.gridx = 0;
			gridBagConstraints31.fill = GridBagConstraints.HORIZONTAL;
			gridBagConstraints31.gridy = 0;
			GridBagConstraints gridBagConstraints21 = new GridBagConstraints();
			gridBagConstraints21.gridx = 0;
			gridBagConstraints21.fill = GridBagConstraints.HORIZONTAL;
			gridBagConstraints21.gridy = 2;
			GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
			gridBagConstraints2.gridx = 0;
			gridBagConstraints2.gridy = 1;
			jContentPane = new JPanel();
			jContentPane.setLayout(new GridBagLayout());
			jContentPane.setBackground(new Color(108,108,108));
			jContentPane.add(getPlURL(), gridBagConstraints2);
			jContentPane.add(getPlButtons(), gridBagConstraints21);
			jContentPane.add(getPlLanguage(), gridBagConstraints31);
		}
		return jContentPane;
	}

	/**
	 * This method initializes plURL	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getPlURL() {
		if (plURL == null) {
			GridBagConstraints gridBagConstraints4 = new GridBagConstraints();
			gridBagConstraints4.fill = GridBagConstraints.VERTICAL;
			gridBagConstraints4.gridy = 0;
			gridBagConstraints4.weightx = 1.0;
			gridBagConstraints4.insets = new Insets(0, 11, 0, 0);
			gridBagConstraints4.gridx = 2;
			GridBagConstraints gridBagConstraints8 = new GridBagConstraints();
			gridBagConstraints8.gridx = 1;
			gridBagConstraints8.anchor = GridBagConstraints.SOUTH;
			gridBagConstraints8.insets = new Insets(0, 0, 8, 0);
			GridBagConstraints gridBagConstraints6 = new GridBagConstraints();
			gridBagConstraints6.gridx = 0;
			gridBagConstraints6.insets = new Insets(0, 0, 0, 10);
			gridBagConstraints6.gridy = 1;
			GridBagConstraints gridBagConstraints5 = new GridBagConstraints();
			gridBagConstraints5.gridx = 0;
			gridBagConstraints5.insets = new Insets(0, 0, 5, 10);
			gridBagConstraints5.anchor = GridBagConstraints.SOUTH;
			gridBagConstraints5.ipadx = 0;
			gridBagConstraints5.gridy = 0;
			GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
			gridBagConstraints3.gridx = 1;
			gridBagConstraints3.anchor = GridBagConstraints.WEST;
			gridBagConstraints3.gridy = 1;
			lbURLHost = new JLabel();
			lbURLHost.setText(Resource.getResource("SettingsWindow.SetHost")); //$NON-NLS-1$
			lbURLHost.setFont(new Font("Verdana",Font.PLAIN,12));
			lbURLHost.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED);
			lbURLHost.setForeground(Color.white);
			lbURL = new JLabel();
			lbURL.setText(Resource.getResource("SettingsWindow.URLInput")); //$NON-NLS-1$
			lbURL.setFont(new Font("Verdana",Font.PLAIN,12));
			lbURL.setForeground(Color.white);
			plURL = new JPanel();
			plURL.setLayout(new GridBagLayout());
			plURL.setBackground(new Color(108,108,108));
			plURL.add(lbURL, gridBagConstraints8);
			plURL.add(lbURLHost, gridBagConstraints3);
			plURL.add(getRbURL(), gridBagConstraints5);
			plURL.add(getRbURLHost(), gridBagConstraints6);
			plURL.add(getTfURLName(), gridBagConstraints4);
		}
		return plURL;
	}

	/**
	 * This method initializes rbURL	
	 * 	
	 * @return javax.swing.JRadioButton	
	 */
	private JRadioButton getRbURL() {
		if (rbURL == null) {
			rbURL = new JRadioButton();
			rbURL.setBackground(new Color(108,108,108));
			rbURL.setSelected(true);
			rbURL.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					rbURL.setSelected(true);
					rbURLHost.setSelected(false);
				}
			});
		}
		return rbURL;
	}

	/**
	 * This method initializes rbURLHost	
	 * 	
	 * @return javax.swing.JRadioButton	
	 */
	private JRadioButton getRbURLHost() {
		if (rbURLHost == null) {
			rbURLHost = new JRadioButton();
			rbURLHost.setBackground(new Color(108,108,108));
			rbURLHost.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					rbURLHost.setSelected(true);
					rbURL.setSelected(false);
				}
			});
		}
		return rbURLHost;
	}

	/**
	 * This method initializes plButtons	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getPlButtons() {
		if (plButtons == null) {
			lbLanguage = new JLabel();
			lbLanguage.setText(Resource.getResource("SettingsWindow.LanguageChoice")); //$NON-NLS-1$
			lbLanguage.setForeground(Color.white);
			lbLanguage.setFont(new Font("Verdana",Font.PLAIN,12));
			GridBagConstraints gridBagConstraints10 = new GridBagConstraints();
			gridBagConstraints10.anchor = GridBagConstraints.WEST;
			gridBagConstraints10.insets = new Insets(7, 0, 0, 0);
			GridBagConstraints gridBagConstraints9 = new GridBagConstraints();
			gridBagConstraints9.gridx = 1;
			gridBagConstraints9.insets = new Insets(7, 40, 0, 0);
			gridBagConstraints9.gridy = 0;
			plButtons = new JPanel();
			plButtons.setLayout(new GridBagLayout());
			plButtons.setBackground(new Color(108,108,108));
			plButtons.add(getBtnOK(), gridBagConstraints10);
			plButtons.add(getBtnCancel(), gridBagConstraints9);
		}
		return plButtons;
	}

	/**
	 * This method initializes btnOK	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtnOK() {
		final JFrame frame = this;
		if (btnOK == null) {
			btnOK = new JButton();
			btnOK.setPreferredSize(new Dimension(110, 20));
			btnOK.setBackground(new Color(204,204,204));
			btnOK.setText(Resource.getResource("SettingsWindow.OkBtn")); //$NON-NLS-1$
			btnOK.setFont(new Font("Verdana",Font.BOLD,12));
			btnOK.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent a){
					String sel = (String)cbLanguage.getSelectedItem();
					if (!isFileExist)
						GUIConfig.createXML();

					if (sel.compareTo(Resource.getResource("SettingsWindow.LanguageGerman"))==0){ //$NON-NLS-1$
						GUIConfig.setLanguage(Locale.GERMANY.getLanguage());
						GUIConfig.setCountry(Locale.GERMANY.getISO3Country());
					}
					if (sel.compareTo(Resource.getResource("SettingsWindow.LanguageEnglish"))==0){ //$NON-NLS-1$
						GUIConfig.setLanguage(Locale.ENGLISH.getLanguage());
						GUIConfig.setCountry(Locale.ENGLISH.getISO3Country());
					}	
					else{
						GUIConfig.setLanguage(Locale.getDefault().getLanguage());
						GUIConfig.setCountry(Locale.getDefault().getISO3Country());
					}	
					
					sel = tfURLName.getText();
					
					if (rbURL.isSelected()){
						if(sel.compareTo("")!=0){
							GUIConfig.setURL(sel);
						}
					}
					else
						if(rbURLHost.isSelected()){
							GUIConfig.setURL(Resource.getResource("SettingsWindow.HostURL")); //$NON-NLS-1$
						}
					String[] tmp = null;
					if(guiFrame!=null){
						guiFrame.dispose();
					}
					
					GUI.main(tmp);
					frame.dispose();
				}
			});
		}
		return btnOK;
	}

	/**
	 * This method initializes btnCancel	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtnCancel() {
		final JFrame frame = this;
		if (btnCancel == null) {
			btnCancel = new JButton();
			btnCancel.setPreferredSize(new Dimension(110, 20));
			btnCancel.setBackground(new Color(204,204,204));
			btnCancel.setText(Resource.getResource("SettingsWindow.CancelBtn")); //$NON-NLS-1$
			btnCancel.setFont(new Font("Verdana",Font.BOLD,12));
			btnCancel.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					if (guiFrame != null && guiFrame.isVisible()){
						frame.dispose();
					}
					else{
						if (guiFrame != null)
							guiFrame.dispose();
						frame.dispose();
					}	
				}
			});
		}
		return btnCancel;
	}

	/**
	 * This method initializes plLanguage	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getPlLanguage() {
		if (plLanguage == null) {
			GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
			gridBagConstraints1.fill = GridBagConstraints.VERTICAL;
			gridBagConstraints1.gridy = 0;
			gridBagConstraints1.weightx = 1.0;
			gridBagConstraints1.anchor = GridBagConstraints.EAST;
			gridBagConstraints1.insets = new Insets(0, 0, 10, 0);
			gridBagConstraints1.gridx = 1;
			GridBagConstraints gridBagConstraints = new GridBagConstraints();
			gridBagConstraints.gridx = -1;
			gridBagConstraints.insets = new Insets(0, 32, 10, 0);
			gridBagConstraints.gridy = -1;
			plLanguage = new JPanel();
			plLanguage.setLayout(new GridBagLayout());
			plLanguage.setBackground(new Color(108,108,108));
			plLanguage.add(lbLanguage, gridBagConstraints);
			plLanguage.add(getCbLanguage(), gridBagConstraints1);
		}
		return plLanguage;
	}

	/**
	 * This method initializes cbLanguage	
	 * 	
	 * @return javax.swing.JComboBox	
	 */
	private JComboBox getCbLanguage() {
		String[] language = {Resource.getResource("SettingsWindow.LanguageGerman"),Resource.getResource("SettingsWindow.LanguageEnglish")}; //$NON-NLS-1$ //$NON-NLS-2$
		if (cbLanguage == null) {
			cbLanguage = new JComboBox(language);
			cbLanguage.setPreferredSize(new Dimension(150, 25));
			cbLanguage.setFont(new Font("Tahoma",Font.PLAIN,12));
			cbLanguage.setBackground(Color.gray);
		}
		return cbLanguage;
	}

	
	@SuppressWarnings("unchecked") //$NON-NLS-1$
	private boolean checkValid(String s1,String s2,String s3,String s4){
		boolean noError=true;
		return noError;
	}
	
	/**
	 * This method initializes tfURLName	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getTfURLName() {
		if (tfURLName == null) {
			tfURLName = new JTextField();
			tfURLName.setPreferredSize(new Dimension(150, 20));
			tfURLName.setBackground(Color.lightGray);
		}
		return tfURLName;
	}
	

	
}  //  @jve:decl-index=0:visual-constraint="10,10"
```

Vllt. fällt euch ja was auf, was diesen Fehler zur Folge hat.


----------



## Whitey (27. Mrz 2007)

Fehler gefunden. RMI Einstellungen waren schuld. Das Programm hat die Security-File nicht geladen.

Danke für eure Hilfe


----------

