Hallo,
habe mal eine Frage zu Dialogen mit Swing.
Bin gerade dabei mir eine Software zu schreiben die sich an einer Datenbank anmelden muss. Hierzu möchte bzw. muss ich ein Dialogfeld nutzten.
Habe hierzu eine Klasse namens loginfenster von JDialog abgeleitet und diese Klasse soll auch im Konstruktor gleich die entsprechenden Textfelder die benötigt werden (Servername, DB-Name etc.) initialisieren.
Laut Dokumentation hat JDialog unter anderem den Konstruktor
public Dialog(Frame owner, boolean modal)
Hier wird das Vaterfenster übergeben und genau bestimmt ob der Dialog modal oder nicht ist.
Bei mir muss er modal sein, da eine Anmeldung Pflicht ist und nichts im Hauptfenster passieren darf bis die Anmeldung korrekt ist.
Mit loginfenster dlglogin = new loginfenster(frmmain,true); rufe ich den Dialog entsprechend auf.
Meine Frage ist nun. Mache ich das so richtig? Ich meine es funktioniert aber ist es richtig, dass ich in loginfenster den Konstruktor selbst erneut definiere bzw
mach ich das mit dem Konstruktor so richtig? Konstruktoren werden ja meines Wissens nicht vererbt und deswegen muss ich ja das ganze definieren aber habe ich hier
vielleicht einen Denkfehler? Mir ist z.B. unklar, das ich angebe ob das ganze modal oder nicht ist (setModal(actmodal) aber für das Vaterfenster keine Angaben im Konstruktor machen muss??
Mein Source wie folgt aus
// START ***************** klasse loginfenster ************************
// stellt das soeben beschriebene loginfenster dar
public class loginfenster extends JDialog {
public loginfenster(hauptfenster mainWindow, boolean actmodal) {
// hier werden feldnamen gesetzt und auch ob modal oder nichtmodal
setSize(350,200);
setLocationRelativeTo(null);
setResizable(false);
setModal(actmodal);
setLayout(new GridLayout(5,2,5,5));
JLabel lbserver = new JLabel("Server:");
JLabel lbdb = new JLabel("Datenbank:");
JLabel lbuser = new JLabel("Benutzer:");
JLabel lbpassword = new JLabel("Password:");
JButton pblogin = new JButton("Anmelden");
JButton pbcancel = new JButton("Abbrechen");
JTextField dfserver = new JTextField();
JTextField dfdatabase = new JTextField();
JTextField dfuser = new JTextField();
JPasswordField dfpassword = new JPasswordField();
add(lbserver);
add(dfserver);
add(lbdb);
add(dfdatabase);
add(lbuser);
add(dfuser);
add(lbpassword);
add(dfpassword);
add(pbcancel);
add(pblogin);
}
}
// END ***************** klasse loginfenster ************************
// ***************************START HAUPTKLASSE
// Hauptfenster mit Loginbox
public class mymain {
mymain() {
}
public static void main(String[] args) {
JFrame frmmain = new JFrame();
frmmain.setLocationRelativeTo(null);
// hier der anmeldedialog
loginfenster dlglogin = new loginfenster(frmmain,true);
dlglogin.setVisible(true);
}
}
Wie man merkt kenne ich mich noch nicht besonders aus würde mich aber über jeden Hinweis freuen.
Danke für jeden Tip.
Beste Grüße
Frederick
habe mal eine Frage zu Dialogen mit Swing.
Bin gerade dabei mir eine Software zu schreiben die sich an einer Datenbank anmelden muss. Hierzu möchte bzw. muss ich ein Dialogfeld nutzten.
Habe hierzu eine Klasse namens loginfenster von JDialog abgeleitet und diese Klasse soll auch im Konstruktor gleich die entsprechenden Textfelder die benötigt werden (Servername, DB-Name etc.) initialisieren.
Laut Dokumentation hat JDialog unter anderem den Konstruktor
public Dialog(Frame owner, boolean modal)
Hier wird das Vaterfenster übergeben und genau bestimmt ob der Dialog modal oder nicht ist.
Bei mir muss er modal sein, da eine Anmeldung Pflicht ist und nichts im Hauptfenster passieren darf bis die Anmeldung korrekt ist.
Mit loginfenster dlglogin = new loginfenster(frmmain,true); rufe ich den Dialog entsprechend auf.
Meine Frage ist nun. Mache ich das so richtig? Ich meine es funktioniert aber ist es richtig, dass ich in loginfenster den Konstruktor selbst erneut definiere bzw
mach ich das mit dem Konstruktor so richtig? Konstruktoren werden ja meines Wissens nicht vererbt und deswegen muss ich ja das ganze definieren aber habe ich hier
vielleicht einen Denkfehler? Mir ist z.B. unklar, das ich angebe ob das ganze modal oder nicht ist (setModal(actmodal) aber für das Vaterfenster keine Angaben im Konstruktor machen muss??
Mein Source wie folgt aus
// START ***************** klasse loginfenster ************************
// stellt das soeben beschriebene loginfenster dar
public class loginfenster extends JDialog {
public loginfenster(hauptfenster mainWindow, boolean actmodal) {
// hier werden feldnamen gesetzt und auch ob modal oder nichtmodal
setSize(350,200);
setLocationRelativeTo(null);
setResizable(false);
setModal(actmodal);
setLayout(new GridLayout(5,2,5,5));
JLabel lbserver = new JLabel("Server:");
JLabel lbdb = new JLabel("Datenbank:");
JLabel lbuser = new JLabel("Benutzer:");
JLabel lbpassword = new JLabel("Password:");
JButton pblogin = new JButton("Anmelden");
JButton pbcancel = new JButton("Abbrechen");
JTextField dfserver = new JTextField();
JTextField dfdatabase = new JTextField();
JTextField dfuser = new JTextField();
JPasswordField dfpassword = new JPasswordField();
add(lbserver);
add(dfserver);
add(lbdb);
add(dfdatabase);
add(lbuser);
add(dfuser);
add(lbpassword);
add(dfpassword);
add(pbcancel);
add(pblogin);
}
}
// END ***************** klasse loginfenster ************************
// ***************************START HAUPTKLASSE
// Hauptfenster mit Loginbox
public class mymain {
mymain() {
}
public static void main(String[] args) {
JFrame frmmain = new JFrame();
frmmain.setLocationRelativeTo(null);
// hier der anmeldedialog
loginfenster dlglogin = new loginfenster(frmmain,true);
dlglogin.setVisible(true);
}
}
Wie man merkt kenne ich mich noch nicht besonders aus würde mich aber über jeden Hinweis freuen.
Danke für jeden Tip.
Beste Grüße
Frederick