//Passwort überprüfung
if (pw1.equals(pw2)) {
//Ist das Alter eine Zahl?
if(var_Alter.matches("[0-9]+")){
if(var_Vorname.matches("[A-Z]")) {
JOptionPane.showMessageDialog(null, "Regestrierung abgeschlossen");
}else{
}
}else{
JOptionPane.showMessageDialog(null, "Dein Alter muss eine Zahl sein!");
}
}else{
JOptionPane.showMessageDialog(null, "Passwörter stimmen nicht überein.Bitte versuchen Sie es erneut!");
// Komponenten
JTextField Vorname = new JTextField();
JTextField Zuname = new JTextField();
JTextField Alter = new JTextField();
JTextField Wohnort = new JTextField();
JTextField Passwort = new JTextField();
JTextField Passwort2 = new JTextField();
Object[] message = {"Vorname", Vorname,
"Zuname", Zuname , "Alter",Alter, "Wohnort", Wohnort, "Passwort",Passwort , "Passwort wiederholen", Passwort2};
JOptionPane pane = new JOptionPane( message,
JOptionPane.PLAIN_MESSAGE,
JOptionPane.OK_CANCEL_OPTION);
pane.createDialog(null, "Regestrierung").setVisible(true);
List<Error> errors;
do {
Data data = showSomeInputFormAndWait();
errors = data.validate();
showMightyMessages(errors);
} while (!errors.isEmpty());
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class main {
public static void main(String[] args){
JOptionPane.showMessageDialog(null, "Wilkommen beim iB0T Daten Service!");
JOptionPane.showMessageDialog(null, "Version Alpha 1.0.0");
Object[] options = {"Login", "Regestrieren", "Website",};
int select = JOptionPane.showOptionDialog(null,
"Wählen sie eine Option",
"Menü",
JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null, options, options[0]);
if (select == 1) {
// Komponenten
JTextField Vorname = new JTextField();
JTextField Zuname = new JTextField();
JTextField Alter = new JTextField();
JTextField Wohnort = new JTextField();
JTextField Passwort = new JTextField();
JTextField Passwort2 = new JTextField();
Object[] message = {"Vorname", Vorname,
"Zuname", Zuname , "Alter",Alter, "Wohnort", Wohnort, "Passwort",Passwort , "Passwort wiederholen", Passwort2};
JOptionPane pane = new JOptionPane( message,
JOptionPane.PLAIN_MESSAGE,
JOptionPane.OK_CANCEL_OPTION);
pane.createDialog(null, "Regestrierung").setVisible(true);
//Strings
String var_Vorname = Vorname.getText();
String var_Zuname = Zuname.getText();
String var_Alter = Alter.getText();
String var_Wohnort = Wohnort.getText();
String pw1 = Passwort.getText();
String pw2 = Passwort2.getText();
//Passwort überprüfung
if (pw1.equals(pw2)) {
//Ist das Alter eine Zahl?
if(var_Alter.matches("[0-9]+")){
if(var_Vorname.matches("[A-Z]")) {
JOptionPane.showMessageDialog(null, "Regestrierung abgeschlossen");
}else{
}
}else{
JOptionPane.showMessageDialog(null, "Dein Alter muss eine Zahl sein!");
}
}else{
JOptionPane.showMessageDialog(null, "Passwörter stimmen nicht überein.Bitte versuchen Sie es erneut!");
JTextField Vorname1 = new JTextField();
JTextField Zuname1 = new JTextField();
JTextField Alter1 = new JTextField();
JTextField Wohnort1 = new JTextField();
JTextField Passwort1 = new JTextField();
JTextField Passwort21 = new JTextField();
Object[] message1 = {"Vorname", Vorname1,
"Zuname", Zuname1 , "Alter",Alter1, "Wohnort", Wohnort1, "Passwort",Passwort1 , "Passwort wiederholen", Passwort21};
JOptionPane pane1 = new JOptionPane( message1,
JOptionPane.PLAIN_MESSAGE,
JOptionPane.OK_CANCEL_OPTION);
pane1.createDialog(null, "Login").setVisible(true);
String pw3 = Passwort1.getText();
String pw4 = Passwort21.getText();
if (pw3.equals(pw4)) {
JOptionPane.showMessageDialog(null, "Regestrierung abgeschlossen");
}else{
JOptionPane.showMessageDialog(null, "Sie haben das Passwot zu oft falsch eingegebn bitte starten sie iB0T neu!");
}
}
}
}
}
// Komponenten
JTextField Vorname = new JTextField();
JTextField Zuname = new JTextField();
JTextField Alter = new JTextField();
JTextField Wohnort = new JTextField();
JTextField Passwort = new JTextField();
JTextField Passwort2 = new JTextField();
Object[] message = {"Vorname", Vorname,
"Zuname", Zuname , "Alter",Alter, "Wohnort", Wohnort, "Passwort",Passwort , "Passwort wiederholen", Passwort2};
JOptionPane pane = new JOptionPane( message,
JOptionPane.PLAIN_MESSAGE,
JOptionPane.OK_CANCEL_OPTION);
pane.createDialog(null, "Regestrierung").setVisible(true);
void doit()
{
while (!getValidInput());
}
boolean getValidInput()
{
if (passwordWrong())
{
System.out.println("Password wrong");
return false;
}
if (thisWrong())
{
System.out.println("This wrong");
return false;
}
if (thatWrong())
{
System.out.println("That wrong");
return false;
}
System.out.println("Everything fine");
return true;
}
Seit wann das? ???:L Habe ich was verpasst?Es gilt zwar sonst als schelchter Stil, mehrere Returns zu haben
Na generell habe ich dann entweder die Wahl zwischen 5x return oder 5 ineinander geschachtelten if-Abfragen, von der Lesbarkeit finde ich da ersteres wesentlich angenehmer. Man sieht dann auch, dass die Methode da zu Ende ist.Zuviele returns sollten es nicht sein, im Idelfall natürlich nur eins. In dem letzten Beispiel würde ich einfach für jeden Test eine eigene Methode schreiben und die dann in einer validateAll()-Methode aufrufen.
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class main {
//Willkommen und Variable Methoden
public static void main(String[] args){
JOptionPane.showMessageDialog(null, "Wilkommen beim iB0T Daten Service!");
JOptionPane.showMessageDialog(null, "Version Alpha 1.0.0");
//Variable Methoden
}
public static void selection(String[] args){
Object[] options = {"Login", "Regestrieren", "Website",};
int select = JOptionPane.showOptionDialog(null,
"Wählen sie eine Option",
"Menü",
JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null, options, options[0]);
}
public static void register( int select){
if (select == 1) {
// Komponenten
JTextField Vorname = new JTextField();
JTextField Zuname = new JTextField();
JTextField Alter = new JTextField();
JTextField Wohnort = new JTextField();
JTextField Passwort = new JTextField();
JTextField Passwort2 = new JTextField();
Object[] message = {"Vorname", Vorname,
"Zuname", Zuname , "Alter",Alter, "Wohnort", Wohnort, "Passwort",Passwort , "Passwort wiederholen", Passwort2};
JOptionPane pane = new JOptionPane( message,
JOptionPane.PLAIN_MESSAGE,
JOptionPane.OK_CANCEL_OPTION);
pane.createDialog(null, "Regestrierung").setVisible(true);
//Strings
String var_Vorname = Vorname.getText();
String var_Zuname = Zuname.getText();
String var_Alter = Alter.getText();
String var_Wohnort = Wohnort.getText();
String pw1 = Passwort.getText();
String pw2 = Passwort2.getText();
}}
//Passwort überprüfung
public static void checkRegsiter(String var_Vorname, String var_Zuname , String var_Alter, String var_Wohnort, String pw1, String pw2){
if (pw1.equals(pw2)) {
//Ist das Alter eine Zahl?
if(var_Alter.matches("[0-9]+")){
if(var_Vorname.matches("[A-Z]")) {
JOptionPane.showMessageDialog(null, "Regestrierung abgeschlossen");
}else{
}
}else{
JOptionPane.showMessageDialog(null, "Dein Alter muss eine Zahl sein!");
}
}else{
JOptionPane.showMessageDialog(null, "Passwörter stimmen nicht überein.Bitte versuchen Sie es erneut!");
JTextField Vorname1 = new JTextField();
JTextField Zuname1 = new JTextField();
JTextField Alter1 = new JTextField();
JTextField Wohnort1 = new JTextField();
JTextField Passwort1 = new JTextField();
JTextField Passwort21 = new JTextField();
Object[] message1 = {"Vorname", Vorname1,
"Zuname", Zuname1 , "Alter",Alter1, "Wohnort", Wohnort1, "Passwort",Passwort1 , "Passwort wiederholen", Passwort21};
JOptionPane pane1 = new JOptionPane( message1,
JOptionPane.PLAIN_MESSAGE,
JOptionPane.OK_CANCEL_OPTION);
pane1.createDialog(null, "Login").setVisible(true);
String pw3 = Passwort1.getText();
String pw4 = Passwort21.getText();
if (pw3.equals(pw4)) {
JOptionPane.showMessageDialog(null, "Regestrierung abgeschlossen");
}else{
JOptionPane.showMessageDialog(null, "Sie haben das Passwot zu oft falsch eingegebn bitte starten sie iB0T neu!");
}
}
}
}
Wer redet von geschachtelten if-Abfragen?Na generell habe ich dann entweder die Wahl zwischen 5x return oder 5 ineinander geschachtelten if-Abfragen, von der Lesbarkeit finde ich da ersteres wesentlich angenehmer.
boolean validateAll() {
return checkName()
&& checkAge()
&& checkPassword()
&& ...
Seit wann das? ???:L Habe ich was verpasst?
Dein Code produziert aber keine AusgabenWer redet von geschachtelten if-Abfragen?
public void method(Object o)
{
if(o==null) return;
/// elend langer code
}
public void method(Object o)
{
if(o!=null)
{
/// elend langer code
}
}
@tfa: Der Knackpunkt dürfte sein, dass man, wenn eine der Bedingungen nicht erfüllt ist, eine Nachricht anzeigen will, die sagt, was an der Bedingung nicht stimmt (das könnte ggf. auch in den Methoden passieren, die du beschrieben hast, aber ... naja, irgendwie bin ich mir auch nicht sicher, worum es hier geht... ???:L )
Beispielsweise so:Es geht darum ein Registrierung zu schreiben und , dass ich auf die Methode immer und immer weder zugreifen kann ohne immer eine neue Abrate schrieben zu müssen sondern einfach wieder den Cde der Methode abrufen und verwetten kann und in diesem fall das es dann wider von vorn läuft damit er seinen Fehler beheben kann alles verständlich?
boolean checkPassword()
{
//Passwort überprüfung
if (pw1.equals(pw2)) {
//Ist das Alter eine Zahl?
if(var_Alter.matches("[0-9]+")){
if(var_Vorname.matches("[A-Z]")) {
JOptionPane.showMessageDialog(null, "Regestrierung abgeschlossen");
return true;
}
}else{
JOptionPane.showMessageDialog(null, "Dein Alter muss eine Zahl sein!");
return false;
}
}else{
JOptionPane.showMessageDialog(null, "Passwörter stimmen nicht überein.Bitte versuchen Sie es erneut!");
return false;
}
}
Du musst dir die ganzen GUI-Komponenten in eine Klasse packen und kannst die dann von meiner Methode aus entsprechend aktuallisieren.Das mit den angrauen ist gut!
Könntest du mir erkären wie das funktioniert, also das man den Button erst drücken kann bis alles korreekct ist?
Und ist es möglich unter den Eingabefeldern einblende zu lassen was falsch ist?
...Und ist es möglich unter den Eingabefeldern einblende zu lassen was falsch ist?