Codezeile wird einfach nicht ausgeführt

vinno

Mitglied
Hey,
folgender Code wirft keine Fehlermeldung aber weder if noch else wird bei mir ausgefüht (selbst wenn ich genau diesen Code in die main Methode schreibe. Manchmal wird auch das, was auf diese Zeilen folgt nicht ausgeführt):
Java:
String test1 = "Eins";
        String test2 = "Zwei";
        if (!test1.equalsIgnoreCase(test2)) {
          System.out.println("Inhalte test1 und test2 sind ungleich!");
        }
        else {
          System.out.println("Inhalte test1 und test2 sind gleich!");
        }
Was muss ich machen damit dieser Funktioniert? (nur ein Beispielcode deswegen muss das ! da bleiben)
 
ansonsten: bist du sicher das eclipse genau diese Datei ausführt?
Vielleicht hast du ja eine zweite, leere main datei im projekt liegen, welche gestartet wird.
 
Java:
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.ActionEvent;

@SuppressWarnings("serial")
public class mainfield extends JFrame implements ActionListener
{
    //Definition von Variabeln
    int line, angemeldet;

    String accountname;

    JFrame frameC;
    JPanel chat;
    JLabel labelM, lmelden, name, pw, pw2;
    JTextField tfmessage, tfname;
    JPasswordField tfpassword, tfpassword1;
    JButton buttonS, buttonA, buttonR, login, erstelleAccount, back, btnNewButton;
    TextArea output;

    public mainfield() throws IOException{
        //Deklarieren von Variabeln
        angemeldet = 0;
   
        //nun wird ausgelesen, welche Nummer die letzte Message hatte um alle folgenden zu senden
        try{
            FileReader fr = new FileReader("Chatübertragung.txt"); //Hier: Verweis zu Tausch!
            BufferedReader br = new BufferedReader(fr);
            line = Integer.valueOf(br.readLine());
            br.close();
        }catch(FileNotFoundException exp) {}
   
        //nun wird das Fenster entworfen
        frameC = new JFrame();
        frameC.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frameC.setTitle("Chat");
        frameC.setSize(550, 635);
            chat = new JPanel();
            chat.setLayout(null);
       
            //chatfeld
                labelM = new JLabel("Nachricht:");
                labelM.setFont(new Font("Tahoma", Font.PLAIN, 12));
                labelM.setBounds(18, 367, 61, 14);
            chat.add(labelM);
       
                tfmessage = new JTextField("", 40);
                tfmessage.setBounds(89, 364, 344, 20);
                tfmessage.setForeground(Color.BLACK);
                tfmessage.setBackground(Color.WHITE);
            chat.add(tfmessage);
       
                buttonS = new JButton("senden");
                buttonS.setFont(new Font("Tahoma", Font.PLAIN, 12));
                buttonS.setBounds(443, 363, 81, 23);
                buttonS.addActionListener(this);
            chat.add(buttonS);
       
            //anmeldefeld
                buttonA = new JButton("Anmelden");
                buttonA.setFont(new Font("Tahoma", Font.PLAIN, 12));
                buttonA.setBounds(119, 395, 122, 23);
                buttonA.addActionListener(this);
            chat.add(buttonA);
           
                buttonR = new JButton("Registrieren");
                buttonR.setFont(new Font("Tahoma", Font.PLAIN, 12));
                buttonR.setBounds(275, 395, 122, 23);
                buttonR.addActionListener(this);
            chat.add(buttonR);
           
            //meldefeld
                lmelden = new JLabel("");
                lmelden.setFont(new Font("Tahoma", Font.PLAIN, 12));
                lmelden.setSize(506, 14);
                lmelden.setLocation(18, 429);
            chat.add(lmelden);
   
            //outputfeld
                output = new TextArea();
                output.setBackground(Color.WHITE);
                output.setEditable(false);
                output.setBounds(18, 10, 506, 335);
            chat.add(output);
           
            //Einleitung des Users
                output.setText("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
                output.append("\nSchön, dass du meinen Chat nutzt!");
                output.append("\n(By: Vincent Hilla V0.9)");
                output.append("\nDies ist eine Alpha. Es können also Bugs auftreten.");
                output.append("\nPasswörter sind noch nicht Imnplementiert. Bitte keine Namen stehlen!");
                output.append("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
           
            //Nun werden sachen definiert, die später gebraucht werden könnten aber vorerst unsichtbar sind
           
                //label name
                    name = new JLabel("Name:");
                    name.setEnabled(false);
                    name.setFont(new Font("Tahoma", Font.PLAIN, 12));
                    name.setSize(45, 14);
                    name.setLocation(18, 700);
                    chat.add(name);
               
                //textfeld tfname
                    tfname = new JTextField("", 40);
                    tfname.setFont(new Font("Tahoma", Font.PLAIN, 12));
                    tfname.setEnabled(false);
                    tfname.setSize(344, 20);
                    tfname.setLocation(89, 700);
                    tfname.setForeground(Color.BLACK);
                    tfname.setBackground(Color.WHITE);
                    chat.add(tfname);
               
                //label pw
                    pw = new JLabel("Password:");
                    pw.setEnabled(false);
                    pw.setFont(new Font("Tahoma", Font.PLAIN, 12));
                    pw.setSize(61, 14);
                    pw.setLocation(18, 700);
                    chat.add(pw);
               
                //passwordfeld tfpassword
                    tfpassword = new JPasswordField("", 40);
                    tfpassword.setFont(new Font("Tahoma", Font.PLAIN, 12));
                    tfpassword.setEnabled(false);
                    tfpassword.setSize(344, 20);
                    tfpassword.setLocation(89, 800);
                    tfpassword.setForeground(Color.BLACK);
                    tfpassword.setBackground(Color.WHITE);
                    chat.add(tfpassword);
               
                //button login
                    login = new JButton("Login!");
                    login.setEnabled(false);
                    login.setSize(78, 23);
                    login.setLocation(219, 800);
                    login.setFont(new Font("Tahoma", Font.PLAIN, 12));
                    login.addActionListener(this);
                    chat.add(login);
               
                //boutton back
                    back = new JButton("Back");
                    back.setFont(new Font("Tahoma", Font.PLAIN, 12));
                    back.setSize(81, 23);
                    back.setLocation(443, 700);
                    back.setEnabled(false);
                    back.addActionListener(this);
                    chat.add(back);
               
                //label pw2
                    pw2 = new JLabel("wiederholen:");
                    pw2.setFont(new Font("Tahoma", Font.PLAIN, 12));
                    pw2.setEnabled(false);
                    pw2.setSize(72, 14);
                    pw2.setLocation(18, 800);
                    chat.add(pw2);
               
                //passwordfeld tfpassword1
                    tfpassword1 = new JPasswordField("", 40);
                    tfpassword1.setFont(new Font("Tahoma", Font.PLAIN, 12));
                    tfpassword1.setSize(344, 20);
                    tfpassword1.setLocation(89, 800);
                    tfpassword1.setForeground(Color.BLACK);
                    tfpassword1.setBackground(Color.WHITE);
                    chat.add(tfpassword1);
               
                //button erstelleAccount
                    erstelleAccount = new JButton("Registrieren");
                    erstelleAccount.setFont(new Font("Tahoma", Font.PLAIN, 12));
                    erstelleAccount.setEnabled(false);
                    erstelleAccount.setSize(98, 23);
                    erstelleAccount.setLocation(199, 800);
                    erstelleAccount.addActionListener(this);
                    chat.add(erstelleAccount);
               
           
        //Fenster öffnen
        frameC.getContentPane().add(chat);
        frameC.setVisible(true);
   
        while(true) {
            act();
        }
    }

    public void act() {
        //durchgehender check, ob neue Nachrichten verfügbar und diese dann ausgeben
        try{
            try{
                FileReader fr = new FileReader("Chatübertragung.txt"); //Hier: Verweis zu Tauschordner!
                BufferedReader br = new BufferedReader(fr);
                int newline = Integer.valueOf(br.readLine());
                String message = br.readLine();
                br.close();
                if(newline > line) {
                    output.append("\n" + message);
                    line = newline;
                }
            }catch(IOException ioe) {}
        }catch(NumberFormatException exp) {}
    }

    public void outputten() throws IOException, FileNotFoundException{
        //wenn senden gedrückt
        lmelden.setText("");
        if(angemeldet == 1) {
            if(tfmessage.getText() != null) {
                //Nachricht senden
                BufferedWriter bw = new BufferedWriter(new FileWriter("Chatübertragung.txt")); //Hier: Verweis zu Tausch!
                int newline = line + 1;
                bw.write("" + newline + "");
                bw.newLine();
                bw.write("[" + accountname + "]" + tfmessage.getText());
                bw.close();
           
                //Erstellen einer logdatei
                BufferedWriter bwlog = new BufferedWriter(new FileWriter("Chatlog.txt", /*append*/ true)); //Hier: Verweis zu Tausch!
                bwlog.newLine();
                bwlog.write(newline + ": " + "[" + accountname + "]" + tfmessage.getText());
                bwlog.close();
           
                //Chatfeld leeren
                tfmessage.setText("");
            }
        }else {
            lmelden.setText("Du bist nicht angemeldet!");
            chat.add(lmelden);
       
            frameC.getContentPane().add(chat);
            frameC.setVisible(true);
        }
    }

    public void actionPerformed(ActionEvent ae) {
        if(ae.getSource() == this.buttonS) {
            try{
                outputten();
            }catch(IOException ioe) {}
        }
   
        if(ae.getSource() == this.buttonA) {
            //alle Anmelde/Registrier/Fehlermedungsfelder enfernen
            buttonA.setEnabled(false);
            buttonR.setEnabled(false);
            lmelden.setText("");
       
            //Erstellen des Anmeldebereiches
       
                //Erstellen des Namensfeldes
                name.setEnabled(true);
                name.setLocation(18, 452);
           
                tfname.setEnabled(true);
                tfname.setLocation(89, 449);
           
                //Erstellen des Passwordfeldes
                pw.setEnabled(true);
                pw.setLocation(18, 486);
           
                tfpassword.setEnabled(true);
                tfpassword.setLocation(89, 483);
           
                //Ok button
                login.setEnabled(true);
                login.setLocation(219, 515);
           
                //back button
                back.setEnabled(true);
                back.setLocation(443, 450);
           
            frameC.getContentPane().add(chat);
            frameC.setVisible(true);
        }
   
        if(ae.getSource() == this.buttonR) {
            //alle Anmelde/Registrier/Fehlermedungsfelder enfernen
            buttonA.setEnabled(false);
            buttonR.setEnabled(false);
            lmelden.setText("");
       
            //Erstellen des Registrierbereiches
       
                //Erstellen des Namensfeldes
                name.setEnabled(true);
                name.setLocation(18, 452);
           
                tfname.setEnabled(true);
                tfname.setLocation(89, 449);
           
                //Erstellen des Passwordfeldes
                pw.setEnabled(true);
                pw.setLocation(18, 486);
           
                tfpassword.setEnabled(true);
                tfpassword.setLocation(89, 483);
           
                //Erstellen des Passwordwiederholen Feld
                pw2.setEnabled(true);
                pw2.setLocation(18, 520);
           
                tfpassword1.setEnabled(true);
                tfpassword1.setLocation(89, 517);
           
                //Ok button
                erstelleAccount.setEnabled(true);
                erstelleAccount.setLocation(219, 548);
           
                //back button
                back.setEnabled(true);
                back.setLocation(443, 450);
           
            frameC.getContentPane().add(chat);
            frameC.setVisible(true);
        }
   
        if(ae.getSource() == this.back) {
            //unnötiges entfernen
            try{
                name.setEnabled(false);
                tfname.setEnabled(false);
                pw.setEnabled(false);
                tfpassword.setEnabled(false);
                login.setEnabled(false);
                pw2.setEnabled(false);
                tfpassword1.setEnabled(false);
                erstelleAccount.setEnabled(false);
                lmelden.setText("");
                name.setLocation(18, 700);
                tfname.setLocation(18, 700);
                pw.setLocation(18, 700);
                tfpassword.setLocation(18, 700);
                login.setLocation(18, 700);
                pw2.setLocation(18, 700);
                tfpassword1.setLocation(18, 700);
                erstelleAccount.setLocation(18, 700);
            } catch(NullPointerException exp) {}
       
            //anmeldefeld
                buttonA.setEnabled(true);
           
                buttonR.setEnabled(true);
           
                back.setEnabled(false);
                back.setLocation(18, 700);
       
            frameC.getContentPane().add(chat);
            frameC.setVisible(true);
        }
   
        if(ae.getSource() == this.login) {
            lmelden.setText("");
            if(String.valueOf(tfpassword.getPassword()).equals("") ||  tfname.getText().equals("")) {
                lmelden.setText("Du musst bei Name und Passwort etwas eingeben!");
            }else{
                try{
                    try{
                        BufferedReader brA = new BufferedReader(new FileReader("Password.txt"));
                        String txtname = "nochnichts";
                        String txtpasswort;
                        while(!txtname.equals("")) {
                            txtname = brA.readLine();
                            txtpasswort = brA.readLine();
                            if(txtname.equals(tfname.getText()) && txtpasswort.equals(String.valueOf(tfpassword.getPassword()))) {
                                accountname = String.valueOf(tfname.getText());
                                angemeldet = 1;
                                name.setEnabled(false);
                                tfname.setEnabled(false);
                                pw.setEnabled(false);
                                tfpassword.setEnabled(false);
                                login.setEnabled(false);
                                pw2.setEnabled(false);
                                tfpassword1.setEnabled(false);
                                erstelleAccount.setEnabled(false);
                                back.setEnabled(false);
                                name.setLocation(18, 700);
                                tfname.setLocation(18, 700);
                                pw.setLocation(18, 700);
                                tfpassword.setLocation(18, 700);
                                login.setLocation(18, 700);
                                pw2.setLocation(18, 700);
                                tfpassword1.setLocation(18, 700);
                                erstelleAccount.setLocation(18, 700);
                                back.setLocation(18, 700);
                                buttonA.setLocation(18, 700);
                                buttonR.setLocation(18, 700);
                            }
                        }
                        if(angemeldet == 0) { //FEHLER Wird nie ausgeführt (auch kein else)
                            lmelden.setText("Die Anmeldedaten funktionieren nicht!");
                        }
                        brA.close();
                    }catch(IOException ioe) {}
                }catch(NullPointerException npx) {}
            }
        }
   
        if(ae.getSource() == this.erstelleAccount) {
            lmelden.setText("");
            try{
                try{
                    if(String.valueOf(tfpassword.getPassword()).equals("") || tfname.getText().equals("")) {
                           lmelden.setText("Du musst bei Name und Passwort etwas eingeben!");
                       }else{
                           if(String.valueOf(tfpassword.getPassword()).equals(String.valueOf(tfpassword1.getPassword()))) {
                            BufferedReader brR = new BufferedReader(new FileReader("Password.txt"));
                            String txtname = "nochnichts";
                            while(!txtname.equals("")) {
                                txtname = brR.readLine();
                                brR.readLine();
                                if(txtname.equals(tfname.getText())) {
                                    lmelden.setText("Name bereits vergeben!");
                                }
                            }
                            if(!lmelden.getText().equals("Name bereits vergeben!")) { //FEHLER wird nicht ausgeführt (auch else nicht)
                                BufferedWriter bwR = new BufferedWriter(new FileWriter("Password.txt", /*append*/ true));
                                bwR.newLine();
                                bwR.write(tfname.getText());
                                bwR.newLine();
                                bwR.write(String.valueOf(tfpassword.getPassword()));
                                bwR.close();
                                accountname = tfname.getText();
                                angemeldet = 1;
                                name.setEnabled(false);
                                tfname.setEnabled(false);
                                pw.setEnabled(false);
                                tfpassword.setEnabled(false);
                                login.setEnabled(false);
                                pw2.setEnabled(false);
                                tfpassword1.setEnabled(false);
                                erstelleAccount.setEnabled(false);
                                back.setEnabled(false);
                                name.setLocation(18, 700);
                                tfname.setLocation(18, 700);
                                pw.setLocation(18, 700);
                                tfpassword.setLocation(18, 700);
                                login.setLocation(18, 700);
                                pw2.setLocation(18, 700);
                                tfpassword1.setLocation(18, 700);
                                erstelleAccount.setLocation(18, 700);
                                back.setLocation(18, 700);
                                buttonA.setLocation(18, 700);
                                buttonR.setLocation(18, 700);
                            }
                            brR.close();
                           }else{
                               lmelden.setText("Die Passwörter stimmen nicht überein!");
                           }
                       }
                }catch(NullPointerException npe) {}
            }catch(IOException ioe) {}
       
        }
    }

    public static void main(String[] args) {
        try{
            mainfield chatter = new mainfield();
            chatter.setVisible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }

        //Folgender teil funktioniert nicht
        //schreibe ich hier System.out.println("test"); würde das ausgeführt werden
        String test1 ="Eins";
        String test2 ="Zwei";
        if(!test1.equalsIgnoreCase(test2)){
        System.out.println("Inhalte test1 und test2 sind ungleich!");
        }
        else{
        System.out.println("Inhalte test1 und test2 sind gleich!");
       }
       }
    }
}


Das ist mein Code
Eigentlich müsste der teil in der main Methode am ende ja angezeigt werden.
 
Java:
while(true){
            act();
       }
du machst hier eine endlosschleife.
Logischerweise wird also alles was danach kommt nicht mehr ausgeführt.
 
Java:
while(true){
            act();
       }
du machst hier eine Endlosschleife.
Logischerweise wird also alles was danach kommt nicht mehr ausgeführt.
Die Main Methode wird doch davor ausgeführt
Außerdem soll ja die act Methode ständig wiederholt werden.
Und danach folgen ja nur noch Methoden, die die act Methode aufrufen und der Actionlistener.
 
die main methode ruft new mainfield() auf, und dort machst du die endlosschleife.
Und solange diese schleife nicht verlassen wird, wird logischerweise auch das danach nicht ausgeführt.
Außerdem wird so deine GUI einfrieren. Die schleife sollte in einem separaten Thread laufen.
 
einen zweiten thread starten, in dem die schleife läuft.
Aber ich würde keine Endlosschleife nehmen, sondern eher sowas:
Java:
while(!beenden) {
  act();
}
 
Indem du die Methode in einen eigenen Thread auslagerst (Runnable implementieren mit deinem Methodencode, dort kann man auch eine entsprechende Schleife erstellen) und diesen Thread starten.

Anmerkung: while(true) als Schleife ist immer eine schlechte Wahl, lieber so wie InfectedBytes es geschrieben hat.
Klassennamen sollten in UpperCamelCase geschrieben werden.

PS: Was soll deine Methode act() denn machen? Immer die 1.Zeile der Datei auslesen und auf die Konsole schreiben?
 
Das Programm erstellt ja letzten Endes ein Fenster, in dem oben ein Textfeld ist und unterhalb Anmeldemöglichkeiten und ein Feld, wo eine Nachricht eingegeben werden kann. Die act() Methode fragt regelmäßig ab, ob jemand eine neue Nachricht gesendet hat und gibt diese dann in dem Textfeld aus. Gedacht war dies einfach als Übung für mich, da ich demnächst in Informatik eine Klausur schreibe. Außerdem sollte es hiermit möglich sein über einen öffendlichen Ordner auf einem Serverlaufwerk meiner Schule Nachrichten innerhalb des Schulnetzwerkes zu senden.
Ich schau mal ob dann alles klappt.
 
Also leider funktioniert immer noch nicht alles:
Java:
if(ae.getSource() == this.login) {
            lmelden.setText("");
            if(String.valueOf(tfpassword.getPassword()).equals("") ||  tfname.getText().equals("")) {
                lmelden.setText("Du musst bei Name und Passwort etwas eingeben!");
            }else{
                try{
                    try{
                        BufferedReader brA = new BufferedReader(new FileReader("Password.txt"));
                        String txtname = "nochnichts";
                        String txtpasswort;
                        System.out.println("a1");
                        int i = 0;
                        while(!txtname.equals("")) {
                            i++;
                            System.out.println(i);
                            txtname = brA.readLine();
                            txtpasswort = brA.readLine();
                            if(txtname.equals(tfname.getText()) &&                     txtpasswort.equals(String.valueOf(tfpassword.getPassword()))) {
                                accountname = String.valueOf(tfname.getText());
                                angemeldet = 1;
                                name.setEnabled(false);
                                tfname.setEnabled(false);
                                pw.setEnabled(false);
                                tfpassword.setEnabled(false);
                                login.setEnabled(false);
                                pw2.setEnabled(false);
                                tfpassword1.setEnabled(false);
                                erstelleAccount.setEnabled(false);
                                back.setEnabled(false);
                                name.setLocation(18, 700);
                                tfname.setLocation(18, 700);
                                pw.setLocation(18, 700);
                                tfpassword.setLocation(18, 700);
                                login.setLocation(18, 700);
                                pw2.setLocation(18, 700);
                                tfpassword1.setLocation(18, 700);
                                erstelleAccount.setLocation(18, 700);
                                back.setLocation(18, 700);
                                buttonA.setLocation(18, 700);
                                buttonR.setLocation(18, 700);
                            }
                        }System.out.println("a2");
                        if(angemeldet == 0) {
                            lmelden.setText("Die Anmeldedaten funktionieren nicht!");
                        }
                        brA.close();
                    }catch(IOException ioe) {}
                    //funzt nicht
                    System.out.println("a3");
                }catch(NullPointerException npx) {} System.out.println("a4");
            }
        }

hierin liegt das erste Problem wenn ich das ausführe wird folgendes ausgegeben:
a1
1
2
3
Folglich wird alles nach der while-Schleife nicht mehr ausgeführt. Die while-Schleife läuft 3 mal durch also läuft nicht unendlich weiter. Zweites Problem:
Java:
if(ae.getSource() == this.erstelleAccount) {
            lmelden.setText("");
            try{
                try{
                    if(String.valueOf(tfpassword.getPassword()).equals("") || tfname.getText().equals("")) {
                           lmelden.setText("Du musst bei Name und Passwort etwas eingeben!");
                       }else{
                           if(String.valueOf(tfpassword.getPassword()).equals(String.valueOf(tfpassword1.getPassword()))) { //FEHLER wird nicht ausgeführt (auch else nicht)
                               System.out.println("a1");
                            BufferedReader brR = new BufferedReader(new FileReader("Password.txt"));
                            String txtname = "nochnichts";
                            int i = 0;
                            while(!txtname.equals("")) {
                                i++;
                                System.out.println(i);
                                txtname = brR.readLine();
                                brR.readLine();
                                if(txtname.equals(tfname.getText())) {
                                    lmelden.setText("Name bereits vergeben!");
                                }
                            }System.out.println("a2");
                            if(!lmelden.getText().equals("Name bereits vergeben!")) {
                                BufferedWriter bwR = new BufferedWriter(new FileWriter("Password.txt", /*append*/ true));
                                bwR.newLine();
                                bwR.write(tfname.getText());
                                bwR.newLine();
                                bwR.write(String.valueOf(tfpassword.getPassword()));
                                bwR.close();
                                accountname = tfname.getText();
                                angemeldet = 1;
                                name.setEnabled(false);
                                tfname.setEnabled(false);
                                pw.setEnabled(false);
                                tfpassword.setEnabled(false);
                                login.setEnabled(false);
                                pw2.setEnabled(false);
                                tfpassword1.setEnabled(false);
                                erstelleAccount.setEnabled(false);
                                back.setEnabled(false);
                                name.setLocation(18, 700);
                                tfname.setLocation(18, 700);
                                pw.setLocation(18, 700);
                                tfpassword.setLocation(18, 700);
                                login.setLocation(18, 700);
                                pw2.setLocation(18, 700);
                                tfpassword1.setLocation(18, 700);
                                erstelleAccount.setLocation(18, 700);
                                back.setLocation(18, 700);
                                buttonA.setLocation(18, 700);
                                buttonR.setLocation(18, 700);
                            }System.out.println("a3");
                            brR.close();
                           }else{
                               lmelden.setText("Die Passwörter stimmen nicht überein!");
                           }
                       }System.out.println("a4");
                }catch(NullPointerException npe) {}System.out.println("a5");
            }catch(IOException ioe) {}
        }
Ausgegeben wird:
a1
1
2
3
a5
Auch hier wird nach der while-Schleife gestoppt.
 
Du hast eine ungewöhnliche Art deine catch-Blöcke zu implementieren ?! Und auch diese geschachtelte Exception-Behandlung ist komisch.
 
Ja ich gehe noch zur Schule und dort sind wir immer noch dabei, wie man eine if schleife richtig aufstellt. Also habe ich mir online weitere Sachen durchgelesen wobei das dann nicht immer alles richtig ist bzw. ich verschiedene Sachen miteinander verbinde oder falsch verstehe. In Zukunft wird das wohl besser, denn wir werden in der Schule ca. 3/4 des Jahres Java behandeln.
 
Ok, kein Problem. Du wolltest vermutlich diese beiden Exceptions Abfangen ? Schreib es mal so:

Java:
                // du brauchst nur ein try
                try{
                    if([URL='http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+string']String[/URL].valueOf(tfpassword.getPassword()).equals("") || tfname.getText().equals("")) {



                               buttonA.setLocation(18, 700);
                                buttonR.setLocation(18, 700);
                            }System.out.println("a3");
                            brR.close();
                           }else{
                               lmelden.setText("Die Passwörter stimmen nicht überein!");
                           }
                       }System.out.println("a4");
                }
                  catch(NullPointerException npe)       {System.out.println("a5");}
                  catch(IOException ioe) { und hier auch ein println}
        }
 
ok danke! Hab es sofort geändert.
Dennoch bleibt das Problem, dass nach der while-Schleife manche Zeilen nicht so ausgeführt werden, wie ich es gerne hätte.
 
Ja das dachte ich mir, aber kann es sein dass in einer der Methoden die du da aufrufst eine Exception geschmissen wird die du nicht siehst ? Oder dass er da drin schleift oder so was ? Kannst du debuggen ? Dann geh doch mal die Schleife schrittweise durch.
 
wir immer noch dabei, wie man eine if schleife richtig aufstellt.

Achtung: Es gibt keine "if-Schleifen" sondern nur "if-Abfragen/Bedingungen"!

Dennoch bleibt das Problem, dass nach der while-Schleife manche Zeilen nicht so ausgeführt werden, wie ich es gerne hätte.

Du musst bedenken: Der Code in deiner while-Schleife wird solange ausgeführt, solange die Bedingung im Kopf der Schleife zutrifft (true ergibt).
Erst wenn die Bedingung nicht mehr zutrifft wird die while-Schleife verlassen und der Code danach ausgeführt.


Wenn du in deiner Schleife etwas einlesen willst und das Eingelesene überprüfen willst und anhand dieser Überprüfung etwas machen willst/musst dann muss der Code innerhalb der Schleife aufgerufen werden. Also entweder steht der Code in der Schleife oder in einer Methode und diese Methode wird innerhalb der Schleife aufgerufen.

Und bevor du ein komplettes Programm schreiben willst, versuche die Schritt für Schritt an eine Lösung heranzutasten. Also erstmal die rudimentäre Schleife und das Einlesen, dann die Überprüfung der eingegeben Werte und zuletzt die Aktion die darauf folgen soll.
 
ok schnell ein Tutorial zum Debuggen angeschaut und bin die Schleife Stück für Stück durchgegangen:
Die Schleife hat ein Ende. Aber wenn die Schleife endet, wird die IOException geschmissen und der manche teile zwischen der Schleife und dem catch-Block wird übersprungen. Hab diese teile in den catch-Block geschrieben und nun funktioniert alles. Mein erstes Programm ist fertig!
Danke euch alle für die Hilfe!
 
Ja klar. Er springt von der Stelle wo die Exception auftritt in den zugehörigen catch-Block !!!!! Lies dir bei Gelegenheit nochmal ein Kapitel über Exceptions durch !
 

Zurück
Oben