Compiler-Fehler if Bedingung fehlerhaft

Playermagier

Mitglied
Hallo,
folgendes Problem besteht. In der Methode 'handleMouseClicked' in der verschachtelten if-Bedingung
Java:
if(kreis.klickanzahl == 1 )
               {
                   kreis.setFill(Color.BLUE);
                   kreis.setFarbe(Color.BLUE);
                   if( letzterKreis.getColor() == vorletzterKreis.getColor())
                   kreiseVerbinden(vorletzterKreis, kreis);
               }
verbindet er die Kreise nicht miteinander. Kann mir evtl. jemand weiterhelfen? Ich habe im weiteren, zusätzlichen Code hinzugefügt für das bessere Verständnis.

Java:
private class Kreis extends Circle
{
       private Color farbe;
       private int klickanzahl=0;
       private int kantenanzahl =0;
       public Kreis ( double xpos, double ypos, int CN , int KN, Color f)
       {
           // Von Superklasse Circle geerbt
           this.setCenterX(xpos);
           this.setCenterY(ypos);
           this.setRadius(RADIUS);
           this.setFill(Color.GREEN);
           farbe = f;
           klickanzahl = CN;
           kantenanzahl = KN;
       }
       public Color setFarbe(Color Farbe) 
       {
           return farbe = Farbe;
       }

       public Color getColor()
       {
           return farbe;
       }
        void erhoeheCN()
        {
            klickanzahl = klickanzahl + 1;
        }

        void erhoeheKN(){
            kantenanzahl = kantenanzahl + 1;
        }
}

Java:
@FXML
   public void handleMouseClicked(MouseEvent event) 
   {
       // Anzahl der Klicks pro Knoten sollen gemerkt werden
       for(Kreis kreis:kreise)
       {
           letzterKreis = null;
           vorletzterKreis = null;
           if(kreis.isClicked(event.getX(), event.getY()))
           {
               vorletzterKreis = letzterKreis;
               letzterKreis = kreis;
               kreis.erhoeheCN();
               System.out.println(kreis.klickanzahl);

               if(kreis.klickanzahl == 1 )
               {
                   kreis.setFill(Color.BLUE);
                   kreis.setFarbe(Color.BLUE);
                   if( letzterKreis.getColor() == vorletzterKreis.getColor())
                   kreiseVerbinden(vorletzterKreis, kreis);
               }
               else 
               {
                   kreis.klickanzahl = kreis.klickanzahl - 2;
                   kreis.setFill(Color.GREEN);
                   System.out.println(kreis.klickanzahl);
               }
           }
       }

Java:
@FXML
   public void handleNeuesProblemButton(ActionEvent event) 
   {
       paneCircles.setDisable(false);   // die Zeichenfläche wird (wieder) aktiv

       // Kreise neu generieren und platzieren
       if(start)
       {
           start = false;
           neuesProblem();
       }
       else
       {
           kreise.clear();
           //zahlen.clear();
           letzterKreis = null;
           KnotenAnzahlAendern();

       // da nur die Kreise der Pane gehören, können wir alle Elemente entfernen
       paneCircles.getChildren().removeAll(paneCircles.getChildren());
       }
       // platziere neue Kreise mit Zahlen
       kreiseZeichnen();
   }

Java:
public void neuesProblem() 
{
   TextInputDialog dialog = new TextInputDialog("");
   dialog.setTitle ("Neues Problem");
   dialog.setHeaderText("Spielhinweis: Grüner Punkt ist Start- und Zielknoten.");
   dialog.setContentText("Wieviele Knoten möchten Sie verbinden?");

   Optional<String> result = dialog.showAndWait();
   result.ifPresent(anzahlKnoten -> System.out.println("Anzahl der Knoten " + anzahlKnoten));

   anzahlKnoten = Integer.parseInt(result.get());
   }
   public void KnotenAnzahlAendern()
   {
       Alert alert = new Alert(AlertType.CONFIRMATION);
       alert.setTitle("Auswahl von Anzahl der Knoten");
       alert.setContentText("Möchten Sie die Anzahl der Knoten ändern?");

       ButtonType buttonTypeJa = new ButtonType("Ja");
       ButtonType buttonTypeNein = new ButtonType("Nein",ButtonData.CANCEL_CLOSE);

       Optional<ButtonType> result = alert.showAndWait();

       if(result.get() == buttonTypeJa)
       {
           neuesProblem();
       }
   }
Java:
public void kreiseVerbinden(Kreis letzterKreis, Kreis vorletzterKreis) {
Line path = new Line(letzterKreis.getCenterX(),letzterKreis.getCenterY(),vorletzterKreis.getCenterX();
vorletzterKreis.getCenterY());
       path.setStrokeWidth(5.);
       path.setStroke(Color.BLACK);
       paneCircles.getChildren().add(path);

       // Kreise auf den Linien zeichnen
       // Zuerst alle entfernen, dann alle hinzufuegen
       paneCircles.getChildren().removeAll(kreise);
       paneCircles.getChildren().addAll(kreise);
   }
Vielen Dank im Voraus.
 

Fulumbler

Mitglied
Was MarkusM gesagt hat:
Durch '==' vergleichst du, ob es sich bei der Farbe um dasselbe Objekt handelt, mit equals schaust du, ob die Werte gleich sind.
 

Playermagier

Mitglied
Java:
if(kreis.klickanzahl == 1 )
               {
                   kreis.setFill(Color.BLUE);
                   kreis.setFarbe(Color.BLUE);
                   System.out.println("Blue___");
                   if( kreis.getColor().equals(vorletzterKreis.getColor() )){
                       System.out.println("es geht nicht :-( ");
                   kreiseVerbinden(vorletzterKreis, kreis);
                   }
               }
System.out.println("Blue___"); wird hier noch ausgeführt, jedoch funktioniert nicht die innere If Bedingung nicht!
Zusätzlich spuckt der Compiler folgende Meldung aus:
Caused by: java.lang.NullPointerException
at application.view.Handlungsreisender_Controller.kreiseVerbinden(Handlungsreisender_Controller.java:344)
at application.view.Handlungsreisender_Controller.handleMouseClicked(Handlungsreisender_Controller.java:158)
 

Libentis

Aktives Mitglied
Java:
if( letzterKreis.getColor().equals(vorletzterKreis.getColor()) )
     kreiseVerbinden(vorletzterKreis, kreis);
oder
Java:
if( kreis.getColor().equals(vorletzterKreis.getColor()) )
     kreiseVerbinden(vorletzterKreis, kreis);
?
(Unterschied ist in der if, einmal vergleichst du mit dem letzten Kreis und einmal mit dem aktuellen Kreis)
 

Playermagier

Mitglied
Fehler gefunden der ist wirklich dämlich!
in handleMouseClicked(MouseEvent event)......

der Ausdruck : letzterKreis = null;
vorletzterKreis = null;
hat immer letzterKreis und vor letzter Kreis immer auf null !

Danke für eure Hilfe :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
Lion.King if-Bedingung Java Basics - Anfänger-Themen 3
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
M Wie lassen sich Konstanten in Bedingung stellen? Java Basics - Anfänger-Themen 1
M Wie lassen sich Objektkonstanten initialisieren, wenn sie eine Bedingung erreichen? Java Basics - Anfänger-Themen 6
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
A Dividieren mit Bedingung? Java Basics - Anfänger-Themen 7
P Bedingung in Schleife wird nicht ausgeführt Java Basics - Anfänger-Themen 5
Dimax Collections groupingBy mit Bedingung Java Basics - Anfänger-Themen 11
H Frage zur if-Bedingung bzw switch case Java Basics - Anfänger-Themen 6
F Bedingung für Eingabe Java Basics - Anfänger-Themen 2
scratchy1 Variablen vertauschen wenn Bedingung "umgedreht" wird Java Basics - Anfänger-Themen 40
Hanschyo If Bedingung Fehler Java Basics - Anfänger-Themen 7
T Komischer Fehler mit einer if-Bedingung Java Basics - Anfänger-Themen 3
W while Schleife und Bedingung Java Basics - Anfänger-Themen 11
E if-Bedingung mit mehreren Möglichkeiten ? Java Basics - Anfänger-Themen 6
S DefaultTableCellRenderer mit Bedingung Java Basics - Anfänger-Themen 1
J Fehler abfangen mit einer Bedingung Java Basics - Anfänger-Themen 3
Z Verschachtelte If-Bedingung Java Basics - Anfänger-Themen 6
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
I Welche Schleife/Bedingung nehme ich her Java Basics - Anfänger-Themen 5
C Compiler-Fehler Wird eine if Bedingung nach einer for-Schleife nach jeder Iteration überprüft? Java Basics - Anfänger-Themen 1
B Kann mir jemand diese Bedingung erklären Java Basics - Anfänger-Themen 5
L Methoden if Bedingung trotz Erfüllung, nicht angesprochen Java Basics - Anfänger-Themen 12
X Schleife bis "Bedingung" ausführen Java Basics - Anfänger-Themen 13
TheMenox Verschachtelte If Bedingung Java Basics - Anfänger-Themen 4
M Erste Schritte if-Bedingung schlägt fehl Java Basics - Anfänger-Themen 4
T Eigene Bedingung in IF-Bedingung Java Basics - Anfänger-Themen 22
Ocram Variablen Vereinfachung einer Bedingung Java Basics - Anfänger-Themen 18
J Can't find symbol - Erstellung eines Objekts in if-Bedingung Java Basics - Anfänger-Themen 3
M Frage zu if-Bedingung Java Basics - Anfänger-Themen 1
F Erste Schritte If Bedingung in Schleife dynamisch erweitern Java Basics - Anfänger-Themen 4
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
R for-Schleife bei erfüllter Bedingung beenden Java Basics - Anfänger-Themen 7
R if funktion ohne else - Bedingung trifft nicht zu, ausgabe nicht nachvollziehbar Java Basics - Anfänger-Themen 7
S if bedingung - Stunde und Minute vergleichen Java Basics - Anfänger-Themen 5
K If-Bedingung mit Wertzuweisung Java Basics - Anfänger-Themen 2
J Vererbung If-Bedingung im Konstruktor Java Basics - Anfänger-Themen 15
J Arrays prüfen und über if Bedingung ausgeben Java Basics - Anfänger-Themen 15
T if Bedingung Java Basics - Anfänger-Themen 16
MiMa for Schleife Bedingung Java Basics - Anfänger-Themen 4
M in jTable schreiben unter Bedingung Java Basics - Anfänger-Themen 3
J Erste Schritte Kurze Frage zu Listenern und If-Bedingung Java Basics - Anfänger-Themen 2
N Verifikation einer if-Bedingung Java Basics - Anfänger-Themen 9
P Variablen ArrayList mit Bedingung iterieren Java Basics - Anfänger-Themen 2
E if(Bedingung) Java Basics - Anfänger-Themen 9
L Erste Schritte Sollte ich hier lieber Cases verwenden oder wäre eine If-Bedingung besser? Java Basics - Anfänger-Themen 6
Anfänger2011 Wie bricht man alles ab wenn eine Bedingung nicht erfüllt ist? Java Basics - Anfänger-Themen 21
P Variablen Variable in if Bedingung anlegen, Wert zuweisen und diesen als Bedingung nutzen Java Basics - Anfänger-Themen 4
M Und Bedingung Java Basics - Anfänger-Themen 17
N Bedingung für Datentypen Java Basics - Anfänger-Themen 3
E if-Bedingung funktioniert nicht Java Basics - Anfänger-Themen 9
W Funktionsaufruf nach Bedingung Java Basics - Anfänger-Themen 3
S for schleife mit if bedingung Java Basics - Anfänger-Themen 21
S return(Bedingung) ? [mehrere Befehle] Java Basics - Anfänger-Themen 5
2 Bedingung bei Schleife Java Basics - Anfänger-Themen 23
E Methode in der Bedingung Java Basics - Anfänger-Themen 11
E if Bedingung Java Basics - Anfänger-Themen 4
H Sortierung eines String[][] mit Bedingung Java Basics - Anfänger-Themen 7
H Bedingung while-Schleife | integer number too large Java Basics - Anfänger-Themen 2
J Gibt es eine möglichkeit ähnlich wie .equals(bedingung1 ||bedingung ..n) ? Java Basics - Anfänger-Themen 5
I Potenzmenge mit Bedingung Java Basics - Anfänger-Themen 24
S If-Bedingung Java Basics - Anfänger-Themen 15
P Einfache Bedingung (?) in Java Java Basics - Anfänger-Themen 3
K Fragen zu If-Bedingung Java Basics - Anfänger-Themen 3
S bedingung in variable speichern? Java Basics - Anfänger-Themen 8
neurox Ergebnis der if-Bedingung weiter verwenden Java Basics - Anfänger-Themen 5
G If-Schleife läuft ohne erfüllte Bedingung Java Basics - Anfänger-Themen 13
K Logik in if-Bedingung Java Basics - Anfänger-Themen 2
S if anweisung wird ausgeführt egal ob bedingung true o. false Java Basics - Anfänger-Themen 2
S For Schleife, Bedingung Java Basics - Anfänger-Themen 4
S Wildcard-Bedingung Java Basics - Anfänger-Themen 10
G Probleme mit break hier; in if-Bedingung Java Basics - Anfänger-Themen 5
M Schleife abhängig von Bedingung Java Basics - Anfänger-Themen 5
G while Bedingung? Java Basics - Anfänger-Themen 6
L Bedingung immer false, auch wenn zwei Strings gleich sind Java Basics - Anfänger-Themen 11
L IF Bedingung in SELECT Statement? Java Basics - Anfänger-Themen 3
M Kleine Frage zu If-Bedingung Java Basics - Anfänger-Themen 4
Bierhumpen String Bedingung. Java Basics - Anfänger-Themen 8
M Comparable - Bedingung erzwingen Java Basics - Anfänger-Themen 3
R Klassen nach Bedingung laden Java Basics - Anfänger-Themen 22
G Compiler sieht die Bedingung nicht! Java Basics - Anfänger-Themen 5
W if Bedingung mit "Außer" Java Basics - Anfänger-Themen 4
T BMI Rechner fehlerhaft Java Basics - Anfänger-Themen 18
I InputStream beim zweiten Mal fehlerhaft Java Basics - Anfänger-Themen 10
E Warum lässt sich eine Klasse nicht starten, wenn eine andere Klasse in dem Modul fehlerhaft ist? Java Basics - Anfänger-Themen 1
U Ausgabe von Dateiinhalt während Programmnutzung fehlerhaft Java Basics - Anfänger-Themen 3
N Erste Schritte Quellcode fehlerhaft Java Basics - Anfänger-Themen 2
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
S Simple Rechnung ist fehlerhaft! Java Basics - Anfänger-Themen 13
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
T Unit tests fehlerhaft bitte um hiiiiilfe :D Java Basics - Anfänger-Themen 1
M Double-Ausgabe in JTextField fehlerhaft Java Basics - Anfänger-Themen 2
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
S Methode prüft fehlerhaft nach Eingangsvariable Java Basics - Anfänger-Themen 2
C FileWriter bzw. Reader fehlerhaft Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben