Probleme if-Anweisung

IwiS

Bekanntes Mitglied
Hallo alle zusammen,

ich habe Probleme mit eine If-Anweisung in meinem Programm. Mein Programm schreibe ich in Eclipse, dort bekomme ich bei meine dem "else" meiner If-Anweisung folgende Fehlermeldung:
Code:
Syntax error on token "else", delete this token
Mein Quellcode sieht wie folgt aus:
Java:
try
	{
     Properties properties2 = new Properties();
     FileInputStream in = new FileInputStream("einstellungen.properties");
     properties2.load(in);
     if(string == (properties2.getProperty("Passwort")));
     dialog4.dispose();
 	 else
 	 final JDialog dialog5 = new JDialog();
 	 dialog5.setLocation(700, 375);
 	 dialog5.setSize(200, 150);
 	 dialog5.setTitle("Passwort falsch");
 	 dialog5.setVisible(true);
 	 label = new JLabel("Das eingegebene Passwort ist falsch");
 	 Panel panel4 = new JPanel();
 	 JButton button3 = new JButton("Erneut versuchen");
 	 button3.addActionListener(new ActionListener()
 	 {
 	  public void actionPerformed(ActionEvent ev)
 	  {
 	 dialog5.dispose();
 	  }
 	 }
 	 );
 	 panel4.add(button3);
 	 dialog5.add(panel4, BorderLayout.SOUTH);
 	 dialog5.add(label, BorderLayout.CENTER);
	}
	catch(Exception e)
	{
     e.printStackTrace();
	}

Ich verstehe nicht, warum Eclipse das "else" weghaben will, ich brauche es doch für meine If-Anweisung, was kann ich tun, um dieses Problem zu umgehen?

lg IwiS
 
T

Tomate_Salat

Gast
Aus diesem Grund solltest du die [c]{[/c]-Klammern verwenden. Dann würde dir dieser Fehler nicht passieren. Schau mal diese Zeile genau an:
[java=6]if(string == (properties2.getProperty("Passwort")));[/code]

außerdem vergleicht man komplexe Datentypen (wozu auch Strings gehören) mit [c].equals(...)[/c]
 

tfa

Top Contributor
Was soll das Semikolon in Zeile 6?
Setze grundsätzlich die Codeabschnitte für den then- und else-Fall in geschweifte Klammern, also
Java:
if (bedingung) {
...
}
else {
..
}
 

IwiS

Bekanntes Mitglied
Hallo,

was das Semikolon da zu suchen hat, kann ich mir selbst nicht erklären. Die geschweiften Klammern hatte ich zuerst, nachdem ich mich dann aber im Internet umgesehen hatte, haben viele Leute keine Klammern verwendet, also dachte ich mir, es sei vllt. besser ohne Klammern zu arbeiten. Das eigentliche Problem lag bei der If-Bedingung.
Ich habe allerdings noch eine Frage. Bei meinem Programm öffnet sich ein Dialog, wie kann ich es möglich machen, dass man von dem Dialog auf keinen Fall in das dahinter liegende Fenster wechseln kann. Ich verwende schon
Code:
dialog.setAlwaysOnTop(true)
, damit der Dialog beim Erscheinen gleich ganz oben ist. Jetzt brauche ich nur noch den Code, damit ich von dem Dialog nicht in das dahinterliegende Fenster wechseln kann.

lg IwiS
 
C

Camino

Gast
Einen JDialog setzt man auf modal mit setModal(true), dann kannst du solange nichts in deinem dahinterliegenden Programm machen, bis der Dialog wieder geschlossen wird.

Und das mit den geschweiften Klammern bei if: Wenn du nur 1 Anweisung bei if oder else hast, bräuchtest du diese Klammern nicht unbedingt, ist aber trotzdem sinnvoller und vermeidet Fehler oder Verwirrung...
 

IwiS

Bekanntes Mitglied
Hallo,

folgendes Problem, bei meiner If-Anweisung wird einfach die erste Anweisung übergangen, egal, ob die Bedingung erfüllt ist oder nicht, und mit der else-Anweisung weitergemacht. Warum ist das so?

lg IwiS

Mein Code:
Java:
try
	{
     Properties properties2 = new Properties();
     FileInputStream in = new FileInputStream("einstellungen.properties");
     properties2.load(in);
     if(string.equals(properties2.getProperty("Passwort")))
     {
      dialog4.dispose();
     }
     else
     {
 	 final JDialog dialog5 = new JDialog(dialog4, "Passwort falsch", true);
 	 dialog5.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
 	 dialog5.setLocation(700, 262);
 	 dialog5.setSize(200, 150);
 	 JLabel label = new JLabel("  Das eingegebene Passwort ist falsch");
 	 JPanel panel4 = new JPanel();
 	 JButton button3 = new JButton("Erneut versuchen");
 	 button3.addActionListener(new ActionListener()
 	 {
 	  public void actionPerformed(ActionEvent ev)
 	  {
 	   dialog5.dispose();
 	  }
 	 }
 	 );
 	 panel4.add(button3);
 	 dialog5.add(panel4, BorderLayout.SOUTH);
 	 dialog5.add(label, BorderLayout.CENTER);
 	 dialog5.setVisible(true);
 	 }
	}
	catch(Exception e)
	{
     e.printStackTrace();
	}
 

tfa

Top Contributor
Wenn der else-Block ausgeführt wird, ist die Bedinung eben nicht erfüllt.
Lass dir doch mal die Strings, die du vergleichst, ausgeben. Die müssten unterschiedlich sein.
 

IwiS

Bekanntes Mitglied
Hi,

ich habe mir die Strings ausgeben lassen, beide gleich. Wenn ich die if und else Blöcke vertausche, wird auch der else-Block ausgeführt.

lg IwiS
 

tfa

Top Contributor
Was gibt
Java:
System.out.println(string.equals(properties2.getProperty("Passwort"));
aus?
 
T

Tomate_Salat

Gast
Im idealfalle gibt das [c]true[/c] aus.
Wenn [c]false[/c], dann sind deine Strings nicht gleich
Wenn ein Fehler kommt, dann diesen hier posten ;-)
 

IwiS

Bekanntes Mitglied
Hi,

es kommt false herraus. Ich glaube aber trotzdem, dass i-was mit der If-Kontrollstruktur nicht stimmt, denn wenn ich die Anweisung aus dem "else"-Block in den "if"-Block schreibe, wird das gemacht, was in dem "if"-Block steht, egal, was ich eingebe.

lg IwiS
 
T

Tomate_Salat

Gast
Hast du schonmal geschaut, was bei:
Java:
System.out.println(strings);
System.out.println(properties2.getProperty("Passwort"));
rauskommt? Sind da vllt Whitespaces o.ä. dazwischen?
 

IwiS

Bekanntes Mitglied
Hallo,

ich habe mal ein anderes Passwort genommen. Jetzt kommt true heraus, jedoch funktioniert die Passwortabfrage (der Quellcode) nicht.

lg IwiS
 
C

Camino

Gast
ich habe mal ein anderes Passwort genommen. Jetzt kommt true heraus

Es sollte wohl true herauskommen, wenn das eingegeben Passwort mit dem in den Properties stimmt. Wenn das so ist, dann ist doch prima...

jedoch funktioniert die Passwortabfrage (der Quellcode) nicht.

Was meinst du mit Passwortabfrage? Vielleicht musst du den relevanten Code nochmal kurz hier posten, falls du was geändert hast.
 

IwiS

Bekanntes Mitglied
Hallo,

hier ist der relevante Code:

Java:
final JDialog dialog4 = new JDialog(prog, "Passwortabfrage", true);
  dialog4.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
  dialog4.setFocusableWindowState(true);
  dialog4.setLocation(575, 262);
  dialog4.setSize(450, 110);
  JPanel panel2 = new JPanel();
  JTextField textfield2 = new JTextField(50);
  panel2.add(textfield2);
  JPanel panel3 = new JPanel();
  final String string = textfield2.getText();
  JButton button2 = new JButton("Weiter");
  button2.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent ev)
   {
	try
	{
     Properties properties2 = new Properties();
     FileInputStream in = new FileInputStream("einstellungen.properties");
     properties2.load(in);
     if(string.equals(properties2.getProperty("Passwort")))
     {
      dialog4.dispose();
     }
     else
     {
 	 final JDialog dialog5 = new JDialog(dialog4, "Passwort falsch", true);
 	 dialog5.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
 	 dialog5.setLocation(700, 262);
 	 dialog5.setSize(200, 150);
 	 JLabel label = new JLabel("  Das eingegebene Passwort ist falsch");
 	 JPanel panel4 = new JPanel();
 	 JButton button3 = new JButton("Erneut versuchen");
 	 button3.addActionListener(new ActionListener()
 	 {
 	  public void actionPerformed(ActionEvent ev)
 	  {
 	   dialog5.dispose();
 	  }
 	 }
 	 );
 	 panel4.add(button3);
 	 dialog5.add(panel4, BorderLayout.SOUTH);
 	 dialog5.add(label, BorderLayout.CENTER);
 	 dialog5.setVisible(true);
 	 }
	}
	catch(Exception e)
	{
     e.printStackTrace();
	}
   }
  }
  );
  panel3.add(button2);
  JButton button3 = new JButton("Beenden");
  button3.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent ev)
   {
	System.exit(0);
   }
  }
  );
  panel3.add(button3);
  dialog4.add(panel3, BorderLayout.SOUTH);
  dialog4.add(panel2, BorderLayout.CENTER);
  dialog4.setVisible(true);

lg IwiS
 
C

Camino

Gast
Moment mal, wenn du ein Textfeld neu erstellst und dann dort sofort den String rausholst, ist der doch erst mal leer:
[JAVA=7]
JTextField textfield2 = new JTextField(50);
panel2.add(textfield2);
JPanel panel3 = new JPanel();
final String string = textfield2.getText();
[/code]

Also, steht im String nix drin. Du musst das
Code:
final String string = textfield2.getText();
im ActionListener machen.
 

truesoul

Top Contributor
Naja deine Variable "string", übrigens echt grauenhaft der Code und die Bezeichnung der Variablen, ist leer.
Mache mal
Java:
string = textfield2.getText();

vor dein
Java:
Properties properties2 = new Properties();
!

Den rest hab ich mir jetzt nicht angeschaut :D
 

IwiS

Bekanntes Mitglied
Hi,

danke für die Tipp's, es hat funktioniert.
@truesoul:
Könntest du mir vllt. erklären, was du an dem Code verbessern würdest.

lg IwiS
 

IwiS

Bekanntes Mitglied
Hallo,

wenn du meinst, dass mein Code schlecht ist, dann sag du mir auch, warum und was man verbessern kann!

lg IwiS
 
T

Tomate_Salat

Gast
dialog1
properties2

das sind keine Namen für variablen. Man verwendet hier treffendere Bezeichnungen anstatt das Schema:
[Datentype][counter]
zu verwenden. Gewöhn dir lieber gleich eine sinnvolle Namensgebung an.

z.B. loginDialog anstatt dialog299938382939
 

truesoul

Top Contributor
  1. Keine sprechende Variablenamen
  2. Kein camelCase
  3. Von Zeile 27 - 45 zum Beispiel sollte ausgelagert werden
  4. Auslagern von Code in Methoden
  5. Anstatt System.exit(0); sollte dispose() verwendet werden
  6. Variablen verwenden und nicht sowas wie in der If Bedingung machen

Zu 5. Wobei EXIT_ON_CLOSE auch System.exit() verwendet!

Das hättest du, zum teil, sicherlich auch dort nachlesen können.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
E repaint Probleme AWT, Swing, JavaFX & SWT 13
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
S GridBagLayout - Probleme mit Bilderanzeige AWT, Swing, JavaFX & SWT 3
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
J Probleme mit idividueller Tablecell AWT, Swing, JavaFX & SWT 0
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
J Probleme mit InputDialog AWT, Swing, JavaFX & SWT 4
D JavaFX TextArea Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 1
G JavaFX SplitPane Anwendung - Controller Probleme AWT, Swing, JavaFX & SWT 5
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
pph080560 JavaFX Probleme mit FX AWT, Swing, JavaFX & SWT 3
M Probleme mit OpenJDK AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
A Probleme mit gridheight (GridBagLayout) AWT, Swing, JavaFX & SWT 6
U Opaque Probleme AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
S Probleme mit JComboboxen(?) AWT, Swing, JavaFX & SWT 18
S Swing Probleme mit MigLayout AWT, Swing, JavaFX & SWT 2
C Probleme mit createImage AWT, Swing, JavaFX & SWT 1
J Probleme mit contex Menu (javafx) AWT, Swing, JavaFX & SWT 1
J Probleme bei GameofLife AWT, Swing, JavaFX & SWT 24
S JavaFx - Button ActionEvent Probleme AWT, Swing, JavaFX & SWT 3
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 0
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 5
J LayoutManager GridBagLayout, probleme mit Anordnung von Objekten AWT, Swing, JavaFX & SWT 6
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
D Swing Probleme mit dem Resizing AWT, Swing, JavaFX & SWT 7
G Probleme mit TextArea AWT, Swing, JavaFX & SWT 5
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
G Cardlayout Refresh Probleme AWT, Swing, JavaFX & SWT 2
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
blazingblade komischerweise probleme mit jtextfield.gettext() AWT, Swing, JavaFX & SWT 9
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
Sin137 LayoutManager GridBagLayout Probleme AWT, Swing, JavaFX & SWT 6
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
M Swing Probleme mit Frame.pack() AWT, Swing, JavaFX & SWT 1
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
M Swing JProgressbar und Outoputstream probleme AWT, Swing, JavaFX & SWT 2
S Swing Probleme mit transparenz der Hintergrundfarbe und JRadioButtons AWT, Swing, JavaFX & SWT 2
Z Probleme mit JPanel's AWT, Swing, JavaFX & SWT 6
T Probleme mit Anzeige von Elementen im JPanel AWT, Swing, JavaFX & SWT 1
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
A Probleme mit TilledBorder("***") AWT, Swing, JavaFX & SWT 4
F Bildschirmschoner Probleme mit Preview AWT, Swing, JavaFX & SWT 8
X Panel Probleme (Tetris) AWT, Swing, JavaFX & SWT 8
N JTable probleme AWT, Swing, JavaFX & SWT 5
B Probleme bei ImageIO.read (?!) AWT, Swing, JavaFX & SWT 9
P JFrame Location-/Size-Probleme AWT, Swing, JavaFX & SWT 5
U LayoutManager Probleme mit Layouts AWT, Swing, JavaFX & SWT 5
C 3 kleine Probleme... AWT, Swing, JavaFX & SWT 13
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
A Probleme mit 2 JFrames in einem Programm AWT, Swing, JavaFX & SWT 7
K LayoutManager Probleme mit 2 Komponenten AWT, Swing, JavaFX & SWT 9
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
M Probleme mit Verkleinern eines GUI AWT, Swing, JavaFX & SWT 7
B Swing label.setText() macht probleme AWT, Swing, JavaFX & SWT 5
B ImageIcon - Probleme mit dem Dateipfad AWT, Swing, JavaFX & SWT 5
H JTree Probleme AWT, Swing, JavaFX & SWT 9
F Probleme mit (Graphics g) II AWT, Swing, JavaFX & SWT 4
F Probleme mit (Graphics g) AWT, Swing, JavaFX & SWT 3
K 2D-Grafik .GIF macht mir Probleme AWT, Swing, JavaFX & SWT 14
B Probleme bei Sortierung einer Tabelle mit DefaultTableModel AWT, Swing, JavaFX & SWT 6
T JTable Graphik probleme AWT, Swing, JavaFX & SWT 3
H GridBagLayout macht Probleme... AWT, Swing, JavaFX & SWT 4
vandread Swing Probleme mit jTextField im zusammenspiel mit einem Einblendeffekt (inkl. KSKB) AWT, Swing, JavaFX & SWT 6
S Swing Lauftext Performance Probleme, in größerer Anwendung AWT, Swing, JavaFX & SWT 6
B Infolabel Probleme mit Paint() ? AWT, Swing, JavaFX & SWT 8
P Probleme mit setIconImage AWT, Swing, JavaFX & SWT 8
U Swing Probleme mit Asynchronen Prozessen und Swing: AWT, Swing, JavaFX & SWT 3
das-mo Probleme mit GridBagLayout AWT, Swing, JavaFX & SWT 6
N 2D-Grafik 2 Probleme beim zeichnen AWT, Swing, JavaFX & SWT 18
L Probleme mit JPanel AWT, Swing, JavaFX & SWT 8
D Probleme bei Übertrag von ArrayList in Jtable AWT, Swing, JavaFX & SWT 2
G kleinere Probleme mit GUI AWT, Swing, JavaFX & SWT 2
G Mehrere Probleme mit Java's GUI AWT, Swing, JavaFX & SWT 6
M Swing Erste Schritte mit der GUI, viele Probleme AWT, Swing, JavaFX & SWT 36
J GUI-Aktualisierungs-Probleme AWT, Swing, JavaFX & SWT 4
B Performance-Probleme AWT, Swing, JavaFX & SWT 17
D Swing Probleme bei transparenten Hintergrund im JTextField AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben