Vererbung mit GUI

Hallo an alle,

Ich sitze momentan an der Programmierung eines KFZ-Betriebs, welcher eine Vererbung in Verbindung mit einer GUI enthalten soll. Bei der Eingabe einer Kundennummer soll in der Maske der Vorname, Nachname, Wohnort und die Telefonnummer erscheinen. Das Problem dabei ist jedoch, dass die Datentypumwandlung von String nach Integer im Button zwar geklappt hat, aber aus der Methode "public void bestaetige()" der Fachklasse keine Attribute mit Hilfe der Methode Integer.toString() in der Fensterklasse in den entsprechenden Textfeldern angezeigt werden können. Desweiteren ist bei mir das Problem aufgetreten, dass vererbte Attribute, welche in der Fachklasse "Meister" auch vorkommen sollen, nicht "visible" sind. Wie kann ich mein Programm und meine Verzweigung abändern, sodass keine Fehler mehr auftauchen?

Vielen Dank,
Neuling123454

Verzweigung in der Fachklasse:
Java:
public void bestaetigung()
   {
      
       if(kundennummer==1)
       {
      
            String Vorname="xy";
           String Nachname="xy";
           String Strasse="xy ";
           int Hausnummer=177;
           int Telefonnummer=02113;
           String Wohnort="xy";
           int Werkstatthausnummer=5;
           String Werkstattort="xy";
           int Werkstattpostleitzahl=40625;
           String Werkstattstrasse="xy";
          
          
          
          
       }
       else
       {
           if(kundennummer==2)
           {
              
               String Vorname="xy";
               String Nachname="xy";
               String Strasse="xy";
               int Hausnummer=104;
               int Telefonnummer=441523;
               String Wohnort="xy";
               int Werkstatthausnummer=17;
               String Werkstattort="xy";
               int Werkstattpostleitzahl=78224;
               String Werkstattstrasse="xy";}
              
               else
               {
                   if(kundennummer==3)
                   {
                      
                       String Vorname="xy";
                       String Nachname="xy";
                       String Strasse="xy ";
                       int Hausnummer=28;
                       int Telefonnummer=0610658741;
                       String Wohnort="xy";
                       int Werkstatthausnummer=47;
                       String Werkstattort="xy";
                       int Werkstattpostleitzahl=60388;
                       String Werkstattstrasse="xy";
                  
                      
                  
               }
           }
       }
Der Button "Bestaetige":
Java:
private JButton getCmdBestaetigung() {
       if (cmdBestaetigung == null) {
           cmdBestaetigung = new JButton();
           cmdBestaetigung.setBounds(new Rectangle(46, 683, 210, 49));
           cmdBestaetigung.setText("Bestätigung");
           cmdBestaetigung.addActionListener(new java.awt.event.ActionListener() {
               public void actionPerformed(java.awt.event.ActionEvent e) {
                   System.out.println("actionPerformed()");
                   // TODO Auto-generated Event stub actionPerformed()
                   Meister meister= new Meister();
                   meister.setKundennummer(Integer.parseInt(txtKundennummer.getText()));
                   meister.bestaetigung();
                   txtHausnummer.setText(Integer.toString(meister.getHausnummer()));
                   txtStrasse.setText(Integer.toString(meister.getStrasse()));
                  
                  
                  
              
               }
 

Anhänge

  • Servicemaske UML.jpg
    Servicemaske UML.jpg
    219,6 KB · Aufrufe: 26
  • Servicemaske.jpg
    Servicemaske.jpg
    290,5 KB · Aufrufe: 29
Zuletzt bearbeitet von einem Moderator:

truesoul

Top Contributor
Hallo.

Verstehe nur Bahnhof. Was für ein Fehler tritt denn auf?
Was soll geschehen?

Also erstmal würde ich den Code in Java Tags packen. (Einfügen...->Code->Java)

Und der dein Code ist fehlerhaft.

Verwende else if und nicht wie du

Code:
if(..) {

} else {
    if (...) {}
}

Zudem sind die Variablen nur im jeweilige Block vorhanden. Das heißt das du schon Instanzvariablen verwenden solltest damit es auch Sinn macht.

Java:
class Meister {
       // Instanzvariable
      private String name;
}

Und was die Methode bestätigen Sinngemäß bezwecken?

Und der Teil:

Java:
txtStrasse.setText(Integer.toString(meister.getStrasse()));

Das geht nicht. Da Integer.toString() ein int erwartet und kein String.

Grüße
 

MoxxiManagarm

Top Contributor
Ich würde generell bei Adressen möglichst auf Integer verzichten.

Das fängt hier an:
Java:
int Werkstatthausnummer=17; // und z.B. 17a?

Und hört bei anderen Ländern, welche z.B. auch Buchstaben in Ihren PostalCodes haben , auf.


Schreib bitte außerdem Variablen in Java immer klein.
 
Hallo truesoul,

Konkret besteht der Fehler darin, dass ich in der Maske eine Kundennummer eingeben möchte und beim Klicken auf den Button "Bestätigung" keine Adresse in der Maske angezeigt wird. Beim Klicken auf den Button "Bestätigung" soll die Kundennummer über die Methode public void bestaetigung(), in welcher die Objekte der Kunden gespeichert sind, laufen und in den Textfeldern der Maske die Adresse des jeweiligen Kunden angezeigt werden.
 

Javinner

Top Contributor
..dass ich in der Maske eine Kundennummer eingeben möchte..
Wäre es nicht viel einfacher dem Kunden anhand seiner Initialen, Geburtsdatums und einer laufenden Nummer die ID zuzuweisen?
Java:
public class Arstotzka
{

    public static void main(String[] args)
    {
        Customer customer = new Customer("Max", "Mustermann", new SimpleDateFormat("13.02.1988"));
        customer.setAddress(new Address("Arstotzka", "77777", "Musterstrasse", 1));
        System.out.println(customer);
       
        String id_of_arstotzka = "MM.13.02.1988.1000";
       
        if(customer.getID().equals(id_of_arstotzka))
        {
            System.out.println("Accept, Glory to Arstotzka!");
        }

    }

}
/** Output */
Firstname: Max, Secondname: Mustermann
Birtdata: 13.02.1988, Personal ID: MM.13.02.1988.1000
City: Arstotzka, Postcode: 77777
Street: Musterstrasse, Housenumber: 1
Accept, Glory to Arstotzka!
 
Hallo Javinner,
Vielen Dank für deinen Code. Die Zuweisung eines Kunden zu einer ID ist wirklich einfacher. Jedoch darf ich in meinem Projekt außer dem Befehl, dass die Fensterklasse sichtbar wird, nichts in die Startklasse schreiben. Ich habe nur den Button "Bestätigung", welcher bei Aktivierung etwas in den Textfeldern anzeigt und meine Fachklasse mit den vererbten Attributen der Mutterklassen. Da ich in Java ein blutiger Anfänger bin wäre ich dir sehr dankbar, wenn du mir in deiner Antwort erläutern könntest, wie ich deinen Code dahingehend verändern kann.
 

Javinner

Top Contributor
@Neuling123454
Nur damit wir uns verstehen:
Du hast ein Fenster, welches a) eine Suchspalte und b) ein Button "Suche"(eventuell noch ein zum Löschen der Maske und der Suchspalte) und c) eine leere Maske inne hat. Die Maske hat als Attribute : Namen, Nachnamen, Telefonnummer und Kunden-ID.
Dann willst du in die besagte Suchspalte eine ID eingeben, den "Suche" Button betätigen, dabei soll in der Maske der Kunde erscheinen, zu dem die ID gehört. Ist es so korrekt?
 
Hallo,
Nicht ganz.
Ich habe ein Fenster mit den Textfeldern meines Anhangs. Bei Eingabe einer Kunden-ID in das entsprechende Textfeld soll in den Textfeldern, welche zum Kunden gehören, der Name, Nachname und die Telefonnummer erscheinen. Diese Attribute wurden von der Kundenklasse an die Meisterklasse vererbt(UML siehe anhang). Wenn ich die Kunden-ID eingegeben habe klicke ich auf den Button "Bestätigung". Dieser Button soll im Button-Programmcode der Fensterklasse eine Datentypumwandlung der Kunden-ID(Textfeld:String) in eine angelegte Methode der Fachklasse "Meister" machen. Diese Methode enthält alle erzeugten Attribute, wie z.B. den Nachnamen des Kunden, welche mit Hilfe einer Datentypumwandlungsbefehl, welcher im Button "Bestätigen" ist, aus der Meisterklasse herausgelesen werden und in den Textfeldern des Fensters, welche zum Kunden gehören, angezeigt werden. Ich mache quasi mit Hilfe dieser Datentypumwandlungsbefehle im Button-Programmcode des Buttons "Bestätigung" einen Umweg über die Fachklasse "Meister", um die Informationen des Kunden im Fenster zu erhalten.

Ein zweiter Button namens"Neu" löscht den ganzen Text in den Textfeldern, welchen ich aber schon programmiert habe.
 

Javinner

Top Contributor
@Neuling123454
Du kannst das Hab und Gut der Elternklasse an das Kind übergeben. Das Kind kann diese dann beliebig überschreiben. Schau dir das hier an.
Java:
public class Customer extends JFrame
{

    private final int WINDOW_WIDTH = 500;
    private final int WINDOW_HEIGHT = 400;
    private final Font font_style = new Font(Font.SANS_SERIF, Font.ITALIC, 25);
    private final Container container;
    private final JLabel a;
    private final JLabel b;
    private final JLabel c;

    public Customer()
    {
        this.container = getContentPane();
        this.container.setLayout(new FlowLayout());

        a = createJLabel("<Label A>");
        b = createJLabel("<Label B>");
        c = createJLabel("<Label C>");

        fill(a, b, c);
        initialize();

    }

    public Container getMyContainer()
    {
        return this.container;
    }

    private void fill(JLabel... label)
    {
        for (JLabel l : label)
        {
            this.container.add(l);
        }
    }

    private void initialize()
    {
        this.setTitle("My JFrame");
        this.setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    private JLabel createJLabel(String name)
    {
        JLabel jLabel = new JLabel(name);
        jLabel.setFont(font_style);
        return jLabel;
    }

}

Java:
public class AnotherCustomer extends Customer
{

    private final Container container;
    private final String[] mString =
    {
        "A", "B", "C"
    };

    public AnotherCustomer()
    {
        this.container = getMyContainer();
        changeMyContainer();
        changeMyFrame();
    }

    private void changeMyContainer()
    {
        for (int x = 0; x < this.container.getComponentCount(); x++)
        {
            JLabel jLabel = (JLabel) this.container.getComponent(x);
            jLabel.setText(mString[x]);
        }
    }

    private void changeMyFrame()
    {
        this.setTitle("MyAnotherCustomer");
        this.setSize(600, 600);
    }
}
 

Anhänge

  • InheritThings.PNG
    InheritThings.PNG
    80,1 KB · Aufrufe: 30
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Vererbung?! Allgemeine Java-Themen 15
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
MiMa Vererbung und Komposition?? Allgemeine Java-Themen 38
Kirby.exe Vererbung bei Generics Allgemeine Java-Themen 7
L Vererbung Verständnis Probleme Vererbung Allgemeine Java-Themen 2
W Generics + Vererbung Allgemeine Java-Themen 47
M Vererbung mithilfe von Bluej Allgemeine Java-Themen 3
M List -Tableview-Javafx-Vererbung Allgemeine Java-Themen 35
A Vererbung Selbstreferenzparameter Allgemeine Java-Themen 14
D Thema: Vererbung Ober-/Unterklassen Allgemeine Java-Themen 16
D Frage zu Vererbung Allgemeine Java-Themen 5
E Vererbung Countable mit Vererbung Allgemeine Java-Themen 6
J 2 Fragen zur Vererbung Allgemeine Java-Themen 5
T Javaklassen und vererbung Allgemeine Java-Themen 32
F Vererbung Allgemeine Java-Themen 5
Neumi5694 Vererbung Restriktive Vererbung Allgemeine Java-Themen 4
A Vererbung Übungsaufgabe Vererbung - Erstellung Klassenhierarchie Allgemeine Java-Themen 1
J Allgemeine Fragen zu Vererbung Allgemeine Java-Themen 1
kaoZ Generics und Vererbung Allgemeine Java-Themen 3
D Problem bei Vererbung abstrakter Klassen Allgemeine Java-Themen 6
D Object nach Vererbung mit Class Object überprüfen Allgemeine Java-Themen 4
T Super Klasse Vererbung Problem :/ Allgemeine Java-Themen 10
L Unabhängige Auslieferung bei Vererbung Allgemeine Java-Themen 20
S MVC - Vererbung Allgemeine Java-Themen 4
C Enums und Vererbung Allgemeine Java-Themen 6
F Google Guice + Generics + Vererbung Allgemeine Java-Themen 5
D Unterschied Vererbung und Polymorphie? Allgemeine Java-Themen 4
K Vererbung ohne Basisklasse zu kennen Allgemeine Java-Themen 20
Da_Tebe ArrayList<xyz> Verschachtelung oder Vererbung? Allgemeine Java-Themen 6
faetzminator statische Variablen in Interface - Vererbung? Allgemeine Java-Themen 9
M OOP PropertyChangeListener - Vererbung oder Komposition? Allgemeine Java-Themen 5
S OOP Mehrfache Vererbung von abstrakten Klassen Allgemeine Java-Themen 7
G Designfrage Vererbung ja oder nein Allgemeine Java-Themen 9
S equals - Identität ändern bei Vererbung? Allgemeine Java-Themen 5
dayaftereh Vererbung Hilfe Allgemeine Java-Themen 2
D Vererbung, Reflection und automatischer Methodenaufruf Allgemeine Java-Themen 24
A PropertyChangeListener Vererbung Allgemeine Java-Themen 4
P DefaultTreeCellRenderer Vererbung Allgemeine Java-Themen 5
S Objekte die Objekte enthalten: Keine Vererbung Allgemeine Java-Themen 4
J Vererbung bei abstrakten Klassen Allgemeine Java-Themen 2
S Vererbung: Welche Methode wird verwendet? Allgemeine Java-Themen 9
L Checkstyle: Wann ist eine Methode für Vererbung entworfen? Allgemeine Java-Themen 13
S normale vererbung als interface Allgemeine Java-Themen 2
S statische Methoden und Vererbung Allgemeine Java-Themen 6
R Vererbung - doppelte Paint-Methode Allgemeine Java-Themen 4
R Vererbung mit Interface und Abstract Allgemeine Java-Themen 3
B Vererbung bei enums ? Allgemeine Java-Themen 3
W Frage zu Vererbung / konkretes Beispiel Allgemeine Java-Themen 4
F Vererbung von SessionBeans Allgemeine Java-Themen 3
O abstract, privat, Vererbung Allgemeine Java-Themen 29
L Annotations mit Vererbung Allgemeine Java-Themen 4
M Singleton und Vererbung? Allgemeine Java-Themen 45
T Problem mit Vererbung Allgemeine Java-Themen 3
V Vererbung und Schleifen Allgemeine Java-Themen 5
C Comparable + Vererbung Funktioniert nicht? Allgemeine Java-Themen 4
A Ansatz Objektorientierung, Methoden Vererbung Allgemeine Java-Themen 2
D Listen von Generischen Typen inkl. Vererbung Allgemeine Java-Themen 2
D Zugriffsmethode nach Vererbung ändern? Allgemeine Java-Themen 5
S Vererbung in UML Allgemeine Java-Themen 3
T Nochmal Frage zu Vererbung Interfaces etc. Allgemeine Java-Themen 10
Y Gedanken zur Vererbung Allgemeine Java-Themen 7
F Vererbung, Generizität und Collections. Allgemeine Java-Themen 7
G Frage zu statischen Variablen bei Vererbung Allgemeine Java-Themen 15
F Vererbung Allgemeine Java-Themen 5
S Vererbung von mehreren Klassen? Allgemeine Java-Themen 5
C enum und Vererbung Allgemeine Java-Themen 3
K Problem mit Vererbung - Kein wirklicher Nutzen. Allgemeine Java-Themen 10
G vererbung vs benutzung Allgemeine Java-Themen 7
L Vererbung klappt nicht Allgemeine Java-Themen 5
W Probleme mit Arrays und Vererbung ! Allgemeine Java-Themen 5
M vererbung einer "selbst-instanzierungs-klasse" Allgemeine Java-Themen 16
J Vererbung. Allgemeine Java-Themen 8
H Frage zur Vererbung Allgemeine Java-Themen 5
S private Instanzvaribalen bei "Innerer-Vererbung" Allgemeine Java-Themen 9
H Vererbung auch ohne erzeugung einer Instanz möglich? Allgemeine Java-Themen 3
M frage zur vererbung Allgemeine Java-Themen 12
G Generics und Vererbung. Allgemeine Java-Themen 21
M Vererbung von Hashtables Allgemeine Java-Themen 5
C dynamische Vererbung Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben