package de.egui.dialogs;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginScreen {
public static final int CANCEL = 0;
public static final int OK = 1;
private int returnvalue = CANCEL;
private JDialog dialog = null;
private JTextField user = null;
private JPasswordField pass = null;
private JLabel text = null;
private JLabel usertext = null;
private JLabel passtext = null;
private JButton ok = null;
private JButton cancel = null;
private JPanel mainpane = null;
private JPanel leftpane = null;
private JPanel middlepane = null;
private JPanel downpane = null;
public LoginScreen() {
this(null);
}
public LoginScreen(Frame parent) {
this(parent, "");
}
public LoginScreen(Frame parent, String text) {
this(parent, text, "", "");
}
public LoginScreen(Frame parent, String text, String user, String pass) {
dialog = new JDialog(parent, true);
this.user = new JTextField();
this.pass = new JPasswordField();
this.text = new JLabel();
usertext = new JLabel("User:");
passtext = new JLabel("Password:");
ok = new JButton("OK");
cancel = new JButton("Cancel");
mainpane = new JPanel();
leftpane = new JPanel();
middlepane = new JPanel();
downpane = new JPanel();
mainpane.setLayout(new BorderLayout());
leftpane.setLayout(new GridLayout(0, 1, 0, 3));
middlepane.setLayout(new BorderLayout());
setText(text);
setUser(user);
setPassword(pass);
mainpane.add(middlepane);
mainpane.add(leftpane, BorderLayout.WEST);
mainpane.add(downpane, BorderLayout.SOUTH);
mainpane.add(this.text, BorderLayout.NORTH);
leftpane.add(usertext);
leftpane.add(passtext);
middlepane.add(this.user);
middlepane.add(this.pass, BorderLayout.SOUTH);
downpane.add(ok);
downpane.add(cancel);
dialog.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
returnvalue = CANCEL;
}
});
ok.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
returnvalue = OK;
dialog.dispose();
}
});
cancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
returnvalue = CANCEL;
dialog.dispose();
}
});
dialog.setContentPane(mainpane);
dialog.setResizable(false);
}
public int showLoginDialog() {
dialog.pack();
dialog.setSize(new Dimension(dialog.getWidth() < 300 ? 300 : dialog.getWidth(), dialog.getHeight()));
dialog.setLocationRelativeTo(dialog.getOwner());
dialog.setVisible(true);
return returnvalue;
}
public String getText() {
return text.getText();
}
public void setText(String text) {
this.text.setText(text);
}
public char[] getPassword() {
return pass.getPassword();
}
public void setPassword(String password) {
pass.setText(password);
}
public String getUser(){
return user.getText();
}
public void setUser(String user) {
this.user.setText(user);
}
public void setPasswordText(String str) {
passtext.setText(str);
}
public void setUserText(String str) {
usertext.setText(str);
}
public void setOKText(String str) {
ok.setText(str);
}
public void setCancelText(String str) {
cancel.setText(str);
}
public void setTitle(String title) {
dialog.setTitle(title);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
LoginScreen ls = new LoginScreen(frame, "Bitte Passwort eingeben");
ls.setTitle("Bitte Passwort eingeben");
System.out.println(ls.showLoginDialog());
System.exit(0);
}
}