Datentypen Hilfe beim Typecasting

S1ngularity

Mitglied
Hallo,

ich bin noch neu in diesem Forum, aber ich brauche eure Hilfe.
Ich habe letztens eine GUI geschrieben mit 9 JTextFields. Ich muss nun die Eingaben herauskopieren mit der Methode getText(); und danach will ich die verschiedenen Werte für eine Parameterübergabe nutzen.

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JMenu.*;
import javax.swing.JMenuBar.*;
import javax.swing.JMenuItem.*;

import java.io.*;

/**
 * Beschreiben Sie hier die Klasse GUI.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class GUI extends JFrame implements ActionListener, MouseListener
{
    Fahrzeugpark park = new Fahrzeugpark();
    JFrame fE = new JFrame();
    public JButton suche;
    private JLabel Autopark;
    private JButton anzeigen1;
    public JTextField eingabe;
    public JButton loeschen;
    private JTextArea information;
    private JButton save;
    private JButton delete;
    private JButton neu;
    private JButton autoNeu;
    
    /**
     * neues Fenster für das Erstellen eines neuen Fahrzeugs
     */
    public JTextField fztp;
    public JTextField parkplatz;
    public JTextField bzs;
    public JTextField kms;
    public JTextField marke;
    public JTextField mtpreis;
    
    public JTextField az;
    public JTextField sp;
    public JTextField hb;
    public JButton hz;
    
   
    int x = 0;
    
    /**
     * Fahrzeugpark
     * 
     */
    
    
    
    /** 
     * Konstruktor für Objekte der Klasse GUI
     */
    public GUI()
    {
        setSize(640,1024);
        setLayout(null);
        setTitle("Fahrzeugparkmanager");
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Fenster();
        setVisible(true);
        setResizable(false);
        
        
    }

    public void Fenster(){
        JMenuBar menubar = new JMenuBar();
        setJMenuBar(menubar);

        JMenu datei = new JMenu("Datei");
        menubar.add(datei);

        JMenuItem exit = new JMenuItem("Schließen");
        exit.addMouseListener(this);
        datei.add(exit);

        JMenu hilfe = new JMenu("Hilfe");
        menubar.add(hilfe);
        JMenuItem informationen = new JMenuItem("Informationen");
        hilfe.add(informationen);

        anzeigen1 = new JButton("Anzeigen");
        anzeigen1.setBounds(20,880,100,20);
        add(anzeigen1);
        anzeigen1.addActionListener(this);

        eingabe = new JTextField("Parknummer eingeben");
        eingabe.setBounds(130,880,180,20);
        add(eingabe);
        eingabe.addMouseListener(this);

        suche = new JButton("Fahrzeug suchen");
        suche.setBounds(320,920,140,20);
        add(suche);
        suche.addActionListener(this);

        loeschen = new JButton("Löschen");
        loeschen.setBounds(320,880,100,20);
        add(loeschen);
        loeschen.addActionListener(this);

        save = new JButton("Save");
        save.setBounds(20,920,100,20);
        add(save);

        information = new JTextArea();
        information.setBounds(10,20, 600,800);
        add(information);
        information.setEditable(false);
        
        autoNeu = new JButton("Neues Auto hinzufügen");
        autoNeu.setBounds(130,920,180,20);
        add(autoNeu);
        autoNeu.addActionListener(this);
        
        
        
        
    }

    public void fahrzeugErstellen(){
        
        fE.setSize(320,590);
        fE.setLayout(null);
        fE.setTitle("Fahrzeug hinzufügen");
        fE.setLocationRelativeTo(null);
        fE.setResizable(false);
        fE.setVisible(true);
        
        
        fztp = new JTextField("Fahrzeugtyp");
        fztp.setBounds(25,30,260,30);
        fztp.addMouseListener(this);
        fE.add(fztp);
        
        

        marke = new JTextField("Marke");
        marke.setBounds(25,80,260,30);
        fE.add(marke);
        marke.addMouseListener(this);
        String markeF = ("Marke");

        bzs = new JTextField("Benzinstand");
        bzs.setBounds(25,130,260,30);
        fE.add(bzs);
        bzs.addMouseListener(this);
        String bzsF = ("Benzinstand");

        kms = new JTextField("Kilometerstand");
        kms.setBounds(25,180,260,30);
        fE.add(kms);
        kms.addMouseListener(this);
        String kmsF = ("Kilometerstand");

        mtpreis = new JTextField("Mietpreis");
        mtpreis.setBounds(25,230,260,30);
        fE.add(mtpreis);
        mtpreis.addMouseListener(this);
        String mtpreis = ("Mietpreis");

        parkplatz = new JTextField("Parkplatz");
        parkplatz.setBounds(25,280,260,30);
        fE.add(parkplatz);
        parkplatz.addMouseListener(this);
        String parkplatzF = ("Parkplatz");

        /**
         *  Wichtig für Wohnwagen und Motorad! 
         */

        az = new JTextField("Achsenanzahl");
        az.setBounds(25,330,260,30);
        fE.add(az);
        az.addMouseListener(this);
        String azF = ("Achsenanzahl");

        sp = new JTextField("Schlafplätze");
        sp.setBounds(25,380,260,30);
        fE.add(sp);
        sp.addMouseListener(this);
        String spF = ("Schlafplätze");

        hb = new JTextField("Hubraum");
        hb.setBounds(25,430,260,30);
        fE.add(hb);
        hb.addMouseListener(this);
        String hbF = ("Hubraum");

        /**
         * Der Button für das Hinzufügen eines KFZ's.
         */

        hz = new JButton("Hinzufügen");
        hz.setBounds(25,480, 260, 70);
        fE.add(hz);
        hz.addActionListener(this);

    }
    public  void actionPerformed (ActionEvent ae){
        if(ae.getSource() == this.anzeigen1){
            int zahl = Integer.parseInt(eingabe.getText());
            park.zeigeFahrzeug(zahl);

            
        }

        if(ae.getSource() == this.loeschen){

        }
        
        if(ae.getSource() == this.autoNeu){
            fahrzeugErstellen();
            
        }
        
           
        if(ae.getSource() == this.hz){
            

            int pk = Integer.parseInt(parkplatz.getText()); 
            int bzst = Integer.parseInt(bzs.getText()); 
            int kmst = Integer.parseInt(kms.getText());
            String mke = marke.getText();
            int mtprs = Integer.parseInt(mtpreis.getText());
            String ftzt = fztp.getText();
            int aaz = Integer.parseInt(az.getText());
            int spe = Integer.parseInt(sp.getText()); 
            double hr = Double.parseDouble(hb.getText()); 
            
            
            park.autoHinzufuegen(pk, bzst, kmst, mke,mtprs, ftzt,aaz, spe, hr);
        }
    }

     
    public void mouseClicked(MouseEvent e) {
        if(x == 0 ){
            if(e.getSource() == this.eingabe){
                eingabe.setText("");
                x++;

            } 
        }

        if(e.getSource() == this.hb){
            hb.setText("");
        
        }else if(e.getSource() == this.fztp){
            
             fztp.setText("");
        }else if(e.getSource() == this.marke){
            marke.setText("");
        }else if(e.getSource() == this.bzs){
            bzs.setText("");
        }else if(e.getSource() == this.kms){
            kms.setText("");
        }else if(e.getSource() == this.mtpreis){
            mtpreis.setText("");
        }else if(e.getSource() == this.parkplatz){
            parkplatz.setText("");
        }else if(e.getSource() == this.az){
            az.setText("");
        }else if(e.getSource() == this.sp){
            sp.setText("");
        }else if(e.getSource() == this.hb){
            hb.setText("");
        }else if(e.getSource() == this.az){
            az.setText("");   
        }
    }

    public void mouseEntered(MouseEvent e) {

    }

    public void mouseExited(MouseEvent e) {
    }

    public void mousePressed(MouseEvent e) {
        
    }

    public void mouseReleased(MouseEvent e) {
    }
    
    
    
}

Für den Überblick über die gesamte Klasse habe ich hier den Code aufgeschrieben.


WICHTIG IST:
Java:
            int pk = Integer.parseInt(parkplatz.getText()); 
            int bzst = Integer.parseInt(bzs.getText()); 
            int kmst = Integer.parseInt(kms.getText());
            String mke = marke.getText();
            int mtprs = Integer.parseInt(mtpreis.getText());
            String ftzt = fztp.getText();
            int aaz = Integer.parseInt(az.getText());
            int spe = Integer.parseInt(sp.getText()); 
            double hr = Double.parseDouble(hb.getText()); 
            
            
            park.autoHinzufuegen(pk, bzst, kmst, mke,mtprs, ftzt,aaz, spe, hr);


Es wäre sehr hilfreich, wenn jemand wüsste, wie ich es schaffen kann.

Danke im Voraus
 
Du siehst ja anhand des Codes, dass ich die "JTextFields" ausfüllen kann?

Nachdem das passiert ist, möchte ich, dass das aufgeschriebene mithilfe von getText(); kopiert wird. Daraufhin sollen diese aufgeschriebenen Sachen ein typecasting durchlaufen.

Und als letztes ist es halt wichtig, dass diese Werte eingesetzt werden.
 
Was genau willst du wohin casten ?!

du erhälst durch getText(); den Inhalt der Textfelder in Form mehrere Strings, was willst du nun Casten ?

du könntest die eingaben vergleichen und dann die nötigen Objekte erstellen


Java:
if(txtFieldOne.getText().equals("Bus"){
    new Bus(); // or whatever
}
else if(txtFieldOne.getText().equlas("Jeep"){
    new Jeep(); // usw. usw.
}


oder du nutzt einen switch zur Fallunterscheidung, aber worauf du das casting beziehst weiß ich leider nicht
 
Zuletzt bearbeitet:
Ich würde die Aufgabenstellung als fast gelöst ansehen:
Drücken des autoNeu-Buttons fügt dem JFrame fE die ganzen Komponenten hinzu und macht diesen sichtbar. Dann wird auch der hz JButton anklickbar. Wenn der button angeklickt wird, werden die Inhalte aus den Textfeldern ausgelesen, ggf. nach int konvertiert (natürlich NICHT gecastet!), und abschließend werden die eingesamnmelten Parameter an eine Methode aus dem Fahrzeugpark übergeben.
Also woran hakt es denn nun genau? Das was du machen möchtest, wird doch alles bereits gemacht.
 
Ich danke euch allen für eure Hilfe. Ich habe das Problem auch später wie folgt gelöst 🙂


Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JMenu.*;
import javax.swing.JMenuBar.*;
import javax.swing.JMenuItem.*;

import java.io.*;

public class GUI extends JFrame implements ActionListener, MouseListener, ItemListener
{
    Fahrzeugpark park = new Fahrzeugpark();
    JFrame fE = new JFrame();
    public JButton suche;
    private JLabel Autopark;
    private JButton anzeigen1;
    public JTextField eingabe;
    public JButton loeschen;
    private JTextArea information;
    private JButton save;
    private JButton delete;
    private JButton neu;
    private JButton autoNeu;

    /**
     * neues Fenster für das Erstellen eines neuen Fahrzeugs
     */
    public JComboBox<String>  fztp;
    public JTextField parkplatz;
    public JTextField bzs;
    public JTextField kms;
    public JTextField marke;
    public JTextField mtpreis;

    public JTextField az;
    public JTextField sp;
    public JTextField hb;
    public JButton hz;
    int x = 0;

    /**
     * Fahrzeugpark
     * 
     */

    /** 
     * Konstruktor für Objekte der Klasse GUI
     */
    public GUI()
    {
        setSize(640,1024);
        setLayout(null);
        setTitle("Fahrzeugparkmanager");
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Fenster();
        setVisible(true);
        setResizable(false);

    }

    public void Fenster(){
        JMenuBar menubar = new JMenuBar();
        setJMenuBar(menubar);

        JMenu datei = new JMenu("Datei");
        menubar.add(datei);

        JMenuItem exit = new JMenuItem("Schließen");
        exit.addMouseListener(this);
        datei.add(exit);

        JMenu hilfe = new JMenu("Hilfe");
        menubar.add(hilfe);
        JMenuItem informationen = new JMenuItem("Informationen");
        hilfe.add(informationen);

        anzeigen1 = new JButton("Anzeigen");
        anzeigen1.setBounds(20,880,100,20);
        add(anzeigen1);
        anzeigen1.addActionListener(this);

        eingabe = new JTextField("Parknummer eingeben!");
        eingabe.setBounds(130,880,180,20);
        add(eingabe);
        eingabe.addMouseListener(this);

        suche = new JButton("Fahrzeug suchen");
        suche.setBounds(320,920,140,20);
        add(suche);
        suche.addActionListener(this);

        loeschen = new JButton("Löschen");
        loeschen.setBounds(320,880,100,20);
        add(loeschen);
        loeschen.addActionListener(this);

        save = new JButton("Save");
        save.setBounds(20,920,100,20);
        add(save);

        information = new JTextArea();
        information.setBounds(10,20, 600,800);
        add(information);
        information.setEditable(false);

        autoNeu = new JButton("Neues Auto hinzufügen");
        autoNeu.setBounds(130,920,180,20);
        add(autoNeu);
        autoNeu.addActionListener(this);

    }

    public void fahrzeugErstellen(){
        fE.setSize(320,590);
        fE.setLayout(null);
        fE.setTitle("Fahrzeug hinzufügen");
        fE.setLocationRelativeTo(null);
        fE.setResizable(false);
        fE.setVisible(true);

        String[] fahrzeugtyp = {"PKW", "LKW", "Motorad", "Wohnwagen"};
        fztp = new JComboBox<String> (fahrzeugtyp);
        fztp.setBounds(25,30,260,30);
        fztp.addItemListener(this);

        fE.add(fztp);

        marke = new JTextField("Marke");
        marke.setBounds(25,80,260,30);
        fE.add(marke);
        marke.addMouseListener(this);

        bzs = new JTextField("Benzinstand");
        bzs.setBounds(25,130,260,30);
        fE.add(bzs);
        bzs.addMouseListener(this);

        kms = new JTextField("Kilometerstand");
        kms.setBounds(25,180,260,30);
        fE.add(kms);
        kms.addMouseListener(this);

        mtpreis = new JTextField("Mietpreis");
        mtpreis.setBounds(25,230,260,30);
        fE.add(mtpreis);
        mtpreis.addMouseListener(this);

        parkplatz = new JTextField("Geben Sie hier die Parknummer ein!");
        parkplatz.setBounds(25,430,260,30);
        fE.add(parkplatz);
        parkplatz.addMouseListener(this);

        /**
         *  Wichtig für Wohnwagen und Motorad! 
         */

        az = new JTextField("0");
        fE.add(az);
        az.addMouseListener(this);

        sp = new JTextField("0");
        fE.add(sp);
        sp.addMouseListener(this);

        hb = new JTextField("0");
        fE.add(hb);
        hb.addMouseListener(this);

        /**
         * Der Button für das Hinzufügen eines KFZ's.
         */

        hz = new JButton("Hinzufügen");
        hz.setBounds(25,480, 260, 70);
        fE.add(hz);
        hz.addActionListener(this);

    }

    public  void actionPerformed (ActionEvent ae){
        if(ae.getSource() == this.anzeigen1){
            int zahl = Integer.parseInt(eingabe.getText());
            
            park.zeigeFahrzeug(zahl);
            

        }
        if(ae.getSource() == this.loeschen){
            int zahl = Integer.parseInt(eingabe.getText());
            park.loescheFahrzeug(zahl);
        }

        if(ae.getSource() == this.autoNeu){
            fahrzeugErstellen();
            s = ("PKW");

        }

        if(ae.getSource() == this.hz){
            int pk = Integer.parseInt(parkplatz.getText()); 
            int bzst = Integer.parseInt(bzs.getText()); 
            int kmst = Integer.parseInt(kms.getText());
            String markeF = marke.getText();
            int mtprs = Integer.parseInt(mtpreis.getText());
            int aaz = Integer.parseInt(az.getText());
            int spe = Integer.parseInt(sp.getText()); 
            double hr = Double.parseDouble(hb.getText()); 
            

            park.autoHinzufuegen(pk, bzst, kmst, markeF ,mtprs, s ,aaz,spe, hr);
            
            fE.dispose();
            fE.setVisible(false);
            fE.removeAll();
        }

    }

    public void mouseClicked(MouseEvent e) {
        if(x == 0 ){
            if(e.getSource() == this.eingabe){
                eingabe.setText("");
                x++;

            } 
        }

        if(e.getSource() == this.hb){
            hb.setText("");

        }else if(e.getSource() == this.fztp){

        }else if(e.getSource() == this.marke){
            marke.setText("");
        }else if(e.getSource() == this.bzs){
            bzs.setText("");
        }else if(e.getSource() == this.kms){
            kms.setText("");
        }else if(e.getSource() == this.mtpreis){
            mtpreis.setText("");
        }else if(e.getSource() == this.parkplatz){
            parkplatz.setText("");
        }else if(e.getSource() == this.az){
            az.setText("");
        }else if(e.getSource() == this.sp){
            sp.setText("");
        }else if(e.getSource() == this.hb){
            hb.setText("");
        }else if(e.getSource() == this.az){
            az.setText("");   
        }
    }

    public void mouseEntered(MouseEvent e) {

    }

    public void mouseExited(MouseEvent e) {
    }

    public void mousePressed(MouseEvent e) {

    }

    public void mouseReleased(MouseEvent e) {
    }
       String s = ("");
    public void itemStateChanged(ItemEvent ie) {
        if (ie.getStateChange() == ItemEvent.SELECTED) {
            s = (String)ie.getItem();

            if(s == ("PKW")){
                hb.setVisible(false);
                sp.setVisible(false);
                az.setVisible(false);
                az.setText("0");
                sp.setText("0");
                hb.setText("0");

                marke.setText("Marke");
                bzs.setText("Benzinstand");
                kms.setText("Kilometerstand");
                mtpreis.setText("Mietpreis");
                parkplatz.setText("Geben Sie hier die Parknummer ein!");

            }else if(s ==("Motorad")){
                sp.setVisible(false);
                az.setVisible(false);
                hb.setVisible(true);
                hb.setBounds(25,280,260,30);
                az.setText("0");
                sp.setText("0");
                hb.setText("Hubraum");

                marke.setText("Marke");
                bzs.setText("Benzinstand");
                kms.setText("Kilometerstand");
                mtpreis.setText("Mietpreis");
                parkplatz.setText("Geben Sie hier die Parknummer ein!");

            }else if(s == ("Wohnwagen")){
                hb.setVisible(false);
                sp.setVisible(true);
                az.setVisible(true);
                az.setBounds(25,280,260,30);
                sp.setBounds(25,330,260,30);
                az.setText("Achsenanzahl");
                sp.setText("Schlafplätze");
                hb.setText("0");
                
                
                marke.setText("Marke");
                bzs.setText("Benzinstand");
                kms.setText("Kilometerstand");
                mtpreis.setText("Mietpreis");
                parkplatz.setText("Geben Sie hier die Parknummer ein!");

            }else if(s == ("LKW")){
                hb.setVisible(false);
                sp.setVisible(false);
                az.setVisible(false);
                az.setText("0");
                sp.setText("0");
                hb.setText("0");

                marke.setText("Marke");
                bzs.setText("Benzinstand");
                kms.setText("Kilometerstand");
                mtpreis.setText("Mietpreis");
                parkplatz.setText("Geben Sie hier die Parknummer ein!");
            }
        } 
    }
}


Ich weiß schon, dass der Progammierstil eher Laienhaft ist, aber ich versuche mich da zu verbessern 🙂
 
Kleiner Tipp noch am Rande

[TIPP]Verwende eindeutige Variablenname, und gewöhne dir ab, ein Null Layout zu verwenden 😉
außerdem vergleicht man Strings mit equals!
[/TIPP]

richtig wäre also nicht das hier

Java:
 if(s == ("PKW"))

sonder sowas hier , gleich unter Verwendung eines aussagekräftigeren namens

Java:
if(string.equals("PKW"){....}

besser noch wäre ein switch :

Java:
switch(string){
  case "PKW":
      //do some stuff
  break;
  case "LKW":
    // do some other stuff
  break;
}

Hierzu kannst du dir einfach grob umrissen merken das du mit
Code:
==
auf Referenzgleichheit prüfst , und unter Verwendung von
Code:
equals(Object o)
darauf ob der Inhalt Identisch mit dem zu prüfenden Objekt ist
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben