# JDialog für Anmeldedialog - mit Jigloo



## sa.ho (11. Jan 2007)

Hallo zusammen,
ich möchte einen Anmeldedialog (Benutzername, Passwort) basteln.
Für das "einfache" Layout benutze ich den Jigloo von Cloudgarden (ist Vorgabe).
Soweit so gut. Den JDialog, von dem ich glaube, dass er sich dafür eignet, hab ich 
als "nackte" Basis. Jetzt geht es leider schon los: Wie um himmelswillen kann ich denn
die Größe des JPasswordfields sowie den "Stand" im JDialog beeinflussen? Also mit dem 
Jigloo bekomm ich es gar nicht hin. Der nimmt meine Größenangaben nicht an, sondern 
passt das Passwortfenster immer exakt der Größe des Dialogs an. Der Code soweit:



```
import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JPasswordField;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder[.....]
*/
public class NewJDialog extends javax.swing.JDialog {


        private JPasswordField Passwort;

	/**
	* Auto-generated main method to display this JDialog
	*/
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		NewJDialog inst = new NewJDialog(frame);
		inst.setVisible(true);
	}
	
	public NewJDialog(JFrame frame) {
		super(frame);
		initGUI();
	}
	
	private void initGUI() {
		try {
			{
				Passwort = new JPasswordField();
				getContentPane().add(Passwort, BorderLayout.CENTER);
				Passwort.setText("jPasswordField1");
				Passwort.setPreferredSize(new java.awt.Dimension(388, 63));
			}
			this.setSize(473, 240);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
```
WO kann ich denn jetzt "Stand" und Größe ändern?? Wenn ich in den Klammern die Größe ändere,
hat es nicht den gewünschten Effekt  :bahnhof: 
HILFE und Danke im Voraus sagt:
s.ho


----------



## sa.ho (11. Jan 2007)

sorry..
nun hab ich durch "zufall" doch herausgefunden, wie ich mit dem jigloo
grafisch die größe bequem verändern kann. es lag an dem gewählten layout
des jdialogs. ich musste "AbsoluteLayout" auswählen.

aber es taucht sicher in den nächsten tagen noch die ein oder andere frage auf  :? 

danke, s.ho


----------



## babuschka (13. Jan 2007)

Hallo zusammen,
da bin ich wieder - neues Problem: soweit - bisher ohne Funktionalität dahinter - der äußere Rahmen für meinen Anmeldedialog. Möchte nun gern eine Grafik / Icon ins Fenster einbinden: Einen Schlüssel oder sowas. Fragen:
Wo finde ich sowas und wie kann ich das einbauen? Und: Wie kann ich denn meinem Fenster einen Namen "Anmeldung" verpassen? Aus API etc. werde ich leider nicht allein schlau..
Bin für jeden Hinweis dankbar!
S.

```
public class NewJDialog extends javax.swing.JDialog {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private JPasswordField jPasswordField1;
	private JLabel jLabel2;
	private JButton jButton2;
	private JButton jButton1;
	private JLabel jLabel1;
	private JTextField Benutzername;

	/**
	* Auto-generated main method to display this JDialog
	*/
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		NewJDialog inst = new NewJDialog(frame);
		inst.setVisible(true);
	}
	
	public NewJDialog(JFrame frame) {
		super(frame);
		initGUI();
	}
	
	private void initGUI() {
		try {
			{
				getContentPane().setLayout(null);
				this.setAlwaysOnTop(true);
				{
					jPasswordField1 = new JPasswordField();
					getContentPane().add(jPasswordField1);
					jPasswordField1.setBounds(168, 98, 140, 28);
					jPasswordField1.setToolTipText("Passwort eingeben");
				}
				{
					Benutzername = new JTextField();
					getContentPane().add(Benutzername);
					Benutzername.setBounds(168, 35, 140, 28);
					Benutzername.setToolTipText("Benutzername eingeben");
				}
				{
					jLabel1 = new JLabel();
					getContentPane().add(jLabel1);
					jLabel1.setText("Benutzername");
					jLabel1.setBounds(168, 7, 140, 28);
				}
				{
					jLabel2 = new JLabel();
					getContentPane().add(jLabel2);
					jLabel2.setText("Passwort");
					jLabel2.setBounds(169, 70, 133, 28);
				}
				{
					jButton1 = new JButton();
					getContentPane().add(jButton1);
					jButton1.setText("OK");
					jButton1.setBounds(140, 140, 63, 28);
				}
				{
					jButton2 = new JButton();
					getContentPane().add(jButton2);
					jButton2.setText("Abbrechen");
					jButton2.setBounds(252, 140, 112, 28);
				}
			}
			this.setSize(470, 209);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
```


----------



## sa.ho (14. Jan 2007)

Hallo nochmal,
hm - keine Antwort bisher..ich habe jetzt was eingebunden, von dem ich dachte, es würde ein kleines icon oben im fenster erscheinen lassen. tut es aber nicht :-( es wäre wirklich schön, wenn da mal jemand drüber gucken könnte, was ich vergessen / falsch gemacht habe. bidde...


```
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.BoxLayout;
import javax.swing.JButton;

import javax.swing.*;

public class NewJDialog extends javax.swing.JDialog {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private JPasswordField jPasswordField1;
	private JLabel jLabel2;
	private JButton jButton2;
	private JButton jButton1;
	private JLabel jLabel1;
	private JTextField Benutzername;

	/**
	* Auto-generated main method to display this JDialog
	*/
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		NewJDialog inst = new NewJDialog(frame);
		inst.setVisible(true);
	}
	
	public NewJDialog(JFrame frame) {
		super(frame);
		initGUI();
	}
	
	private void initGUI() {
		
		String key = "My briefcase4.gif";
		Image image = Toolkit.getDefaultToolkit().getImage( key );
		  setIconImage  ( image );
		
		try {
			{
				getContentPane().setLayout(null);
				this.setAlwaysOnTop(true);
				{
					jPasswordField1 = new JPasswordField();
					getContentPane().add(jPasswordField1);
					jPasswordField1.setBounds(168, 98, 140, 28);
					jPasswordField1.setToolTipText("Passwort eingeben");
				}
				{
					Benutzername = new JTextField();
					getContentPane().add(Benutzername);
					Benutzername.setBounds(168, 35, 140, 28);
					Benutzername.setToolTipText("Benutzername eingeben");
				}
				{
					jLabel1 = new JLabel();
					getContentPane().add(jLabel1);
					jLabel1.setText("Benutzername");
					jLabel1.setBounds(168, 7, 140, 28);
				}
				{
					jLabel2 = new JLabel();
					getContentPane().add(jLabel2);
					jLabel2.setText("Passwort");
					jLabel2.setBounds(169, 70, 133, 28);
				}
				{
					jButton1 = new JButton();
					getContentPane().add(jButton1);
					jButton1.setText("OK");
					jButton1.setBounds(140, 140, 63, 28);
				}
				{
					jButton2 = new JButton();
					getContentPane().add(jButton2);
					jButton2.setText("Abbrechen");
					jButton2.setBounds(252, 140, 112, 28);
				}
			}
			this.setSize(470, 209);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void setIconImage(Image image) {
		// TODO Auto-generated method stub
		
	}
}
```
 :roll:


----------



## sa.ho (14. Jan 2007)

hello again,

kann mir denn wirklich niemand helfen? nur sagen, ob die setIconImage-Methode an richtiger Stelle
ist, ob sie so fuinktionieren kann um das ProgrammIcon zu setzen und WAS daran falsch ist - denn es 
taucht im fenster nicht auf :-(


----------



## sa.ho (16. Jan 2007)

ok - da das thema scheinbar zu uninteressant ist oder ich nicht in der lage war, meine frage eindeutig zu schildern - sorry und dann kann ja der thread gern geschlossen oder als "beantwortet" markiert werden, damit er nicht als "müll" stört - 
danke, s.ho


----------



## Wildcard (16. Jan 2007)

Hmm, komisch das dir niemand geantwortet hat  ???:L 
Nimm statt des Toolkits die ImageIO. Das Toolkit lädt Bilder asynchron, was dazu führt das das Bild *nie* da ist wenn man es braucht  :wink:


----------



## babuschka (17. Jan 2007)

Hallo,
und Danke..für die Antwort. Ich habe das Icon-Problem im Fenster gelöst:

```
bildLabel.setIcon(new ImageIcon(getClass().getClassLoader().getResource("images/Log off.gif")));
```
Allerdings kann ich im Dialogfenster selbst nicht das gewünschte Programmicon sehen. 
In einem ähnlichen Programm funktioniert genau der "Befehl" - also kann ich's mir nur so erklären, dass
ich an falscher Stelle aufrufe oder so. Alles nötige importiert hab ich - bekomme auch keinerlei Fehlermeldung.
Hier der Teilcode:


```
public class LogFenster extends javax.swing.JDialog {
	
	private JTextField LogName;
	private JLabel PassLabel;
	private JButton okButton;
	private JLabel bildLabel;
	private JButton exButton;
	private JLabel NameLabel;
	private JPasswordField LogPassw;
[.....]
public static void main(String[] args) {
		JFrame frame = new JFrame();
		LogFenster inst = new LogFenster(frame);
		inst.setVisible(true);
	}
	
	public LogFenster(JFrame frame) {
		super(frame);
		frame.setIconImage(SwingResourceManager.getImage(LogFenster.class,
		"images/My briefcase1.gif"));  //Fenstericon??
		zeichneGUI();
	}
[.....]
```
Kann mir da nochmal jemand "unter die Arme greifen" bitte  :wink: 

S.


----------



## Wildcard (17. Jan 2007)

Du setzt das Icon auf den (Parent)Frame, da nützt es dir nichts.
Enfach:

```
setIconImage(SwingResourceManager.getImage(LogFenster.class,"images/My briefcase1.gif"));
```


----------



## babuschka (17. Jan 2007)

Morgen,
hm - stimmt, aber wenn ich das frame. weglasse, dann kommt folgende Fehlermeldung:
The method setIconImage(Image) is undefined for the type of LogFenster
LogFenster ist ja ein JDialog ..

```
public class LogFenster extends javax.swing.JDialog {}
```
Liegt da das Problem?   ???:L 
...ratlose grüße


----------



## Wildcard (17. Jan 2007)

Die Methode wird von Window vererbt, das muss also gehen:
http://java.sun.com/javase/6/docs/api/java/awt/Window.html#setIconImage(java.awt.Image)


----------



## padde479 (27. Mrz 2007)

s.ho hat gesagt.:
			
		

> Hallo,
> und Danke..für die Antwort. Ich habe das Icon-Problem im Fenster gelöst:
> 
> ```
> ...


----------

