Konvertieren von String zu double?!

Moin leutes!
Ich habe folgendes Programm geschrieben :
Code:
import java.awt.Color;  //für Hintergrundfarbe
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;

import javax.swing.*;
import javax.swing.text.NumberFormatter;



   public class Parkscheinautomat4 extends JFrame implements ActionListener { // Klasse erbt von
                                                                   //Jframe und ActionListener
       JButton b1 = new JButton(" Bestätigen");     //Hier erstellt, damit sie keine
       JButton b2 = new JButton(" Löschen");        //lokalen Variablen sind
       JFrame frame = new JFrame();
       JPanel panel = new JPanel();
       JTextArea TextBereich = new JTextArea(11,20);
       JTextField ausgabe = new JTextField(15);
       JLabel l1 = new JLabel("Eingabe Betrag: ");
       JLabel l2 = new JLabel("Ihre Parkzeit : ");
       JTextField angabe = new JTextField();
       double angabe = double.Parse();
           
   public Parkscheinautomat4() {           
           super("Ein Parkscheinautomat"); //Fensterüberschrift
               
           TextBereich.setText("Zahlungsmöglichkeiten:\n" +            //Was in der Textarea steht
                            "Es ist ausschließlich Bar zu zahlen!\n" +  
                            "-----------------------\n" +           
                            "Parkgebühren:\n" +
                            "30 Minuten = € 0,80\n" +
                            "1 Stunde = € 1,60\n" +
                            "2 Stunden = € 3,20\n" +
                            "-----------------------\n" +
                            "Höchstparkdauer:\n" +
                            "2 Stunden\n"  );
           
       
           TextBereich.setEditable(false);   //Text nicht
       ausgabe.setEditable(false);       //veränderbar
       TextBereich.setBackground(Color.CYAN);  // ein bissi Farbe muss sein :)
       
       panel.setLayout(new BoxLayout(panel,BoxLayout.PAGE_AXIS));   //Layout wird erstellt
                                                               //untereinander
       panel.add(TextBereich);
       panel.add(l1);
       panel.add(angabe);               //alle Objekte werden in das Panel eingefügt(geaddet)
       panel.add(b1);     
       panel.add(b2);
       panel.add(l2);
       panel.add(ausgabe);
       add(panel);
       pack();   
       
       b1.addActionListener(this);  //ActionListener für die 2 Buttons erstellt
       b2.addActionListener(this);
   }

   public static void main(String[] arguments) {  //Main-Methode
       
       Parkscheinautomat4 PA = new Parkscheinautomat4();
       
   //   PA.setSize(500,500); //unklug, da Größe sowieso mit pack(); bestimmt wird
       //Textfelder nehmen unrealistische und unnötige Größen an
       PA.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   //Fenster wird komplett geschlossen
       PA.setResizable(false);                       //Fenstergröße nicht änderbar
       PA.setLocationRelativeTo(null);           //fenster zentriert
       PA.setVisible(true);
   }
   
   public void actionPerformed(ActionEvent evt){  //Action für Buttons

       Object source = evt.getSource();
       if (source == b1 && angabe == 0.80);
           ausgabe.setText("Sie dürfen 30 Minuten Parken!");   
       
        if (source == b2)
       angabe.setText("");
       repaint();
   }           
}

In der Zeile, wo if (source == b1 && angabe == 0.80); steht, wird angabe == 0.80 unterstrichen. TextField and double are incompatible. Dies habe ich versucht, mir einem doubleParsen zu lösen. Was muss aber in die Klammer von Parsen(Hier) rein? Und habe ich noch einen Fehler gemacht?
2.) Wieso kann ich nur if schreiben und nicht if else? Wenn ich es schreibe, wird else rot markiert.
Hoffe ihr könnt mir helfen!
LG Max 🙂
 
Was muss aber in die Klammer von Parsen(Hier) rein? Und habe ich noch einen Fehler gemacht?
Kommt drauf an wie du das versucht hast zu parsen, das solltest du mal zeigen 😉

2.) Wieso kann ich nur if schreiben und nicht if else? Wenn ich es schreibe, wird else rot markiert.
Du hast nach den Klammern ein ;, damit beendet du das if-statement und machst es überflüssig 😉

BTW, schreib dein if mit geschweiften Klammern.
 
Konvertieren von String zu double funktioniert so:
Java:
String string = "11";
double number = Double.parseDouble(string);

Und wenn du das in deinem Code umgesetzt hast, wäre der nächste Schritt dafür zu sorgen, dass das Programm nicht abstürzt wenn der Benutzer keine Zahl eingibt sondern Buchstaben.

Und TextBereich und PA solltest du noch kleinschreiben.
 
Zuletzt bearbeitet:
Hi ein bisschen umständlich aber ich eines vorweg zum Deklarationsteil : Du solltest nicht dein Textfeld und die Zahl, die dort eingegeben wurde nicht gleich benennen. Mach es lieber so zum Beispiel :

JTextField eingabeText = new JTextField();
double eingabeZahl = Double.parseDouble(eingabeText.getText());



Und dann weiter unten : Schließe mich meinem Vorredner an. Das Semikolon am Ende des if-Statements bitte weg =)
Und dann sollte es eigentlich keinen Fehler mehr geben.
 
Hi ein bisschen umständlich aber ich eines vorweg zum Deklarationsteil : Du solltest nicht dein Textfeld und die Zahl, die dort eingegeben wurde nicht gleich benennen. Mach es lieber so zum Beispiel :

JTextField eingabeText = new JTextField();
double eingabeZahl = Double.parseDouble(eingabeText.getText());



Und dann weiter unten : Schließe mich meinem Vorredner an. Das Semikolon am Ende des if-Statements bitte weg =)
Und dann sollte es eigentlich keinen Fehler mehr geben.

eingabeZahl darf dann aber nicht im Deklarationsteil stehen, da der Text zu dem Zeitpunkt ja noch gar nicht eingegeben wurde.
 

Neue Themen


Zurück
Oben