GUI- Allgemeines Problem (Bitte helfen)

anscash

Mitglied
Hi Community!
Ich habe ein Problem.
Ich habe eine Klasse mit GUI-Maske erstellt, in der Informationen über mehrere JFields gespeichert werden sollen und als Parameter für ein Objekt verwendet werden sollen, welches auch gleich erstellt werden soll.
Das klappt aber nicht so ganz

Java:
import javax.swing.*;

import java.awt.Dimension;
import java.awt.event.*;


public class Mitarbeiter_GUI extends JFrame implements ActionListener {

    JFrame mitarb = new JFrame();
    JTextField feld_name = new JTextField();
    JTextField feld_vorname = new JTextField();
    JTextField feld_adresse = new JTextField();
    JTextField feld_telefon = new JTextField();
    JTextField feld_email = new JTextField();
    JTextField feld_geburtstag = new JTextField();
    JTextField feld_entgelt = new JTextField();
    JTextField quali1 = new JTextField();
    JTextField quali2 = new JTextField();
    JTextField quali3 = new JTextField();
    JTextField quali4 = new JTextField();

    JCheckBox c_intern = new JCheckBox();
    JCheckBox c_extern = new JCheckBox();
    
    JButton save = new JButton();
    JButton abbort = new JButton();
    JButton match = new JButton();

    JLabel label_mitarbeiter = new JLabel();
    JLabel label_stelle = new JLabel();

    JLabel label1 = new JLabel();
    JLabel label2 = new JLabel();
    JLabel label3 = new JLabel();
    JLabel label4 = new JLabel();
    JLabel label5 = new JLabel();
    JLabel label6 = new JLabel();
    JLabel label7 = new JLabel();
    JLabel label8 = new JLabel();
    JLabel label9 = new JLabel();
    JLabel labelquali1 = new JLabel();
    JLabel labelquali2 = new JLabel();
    JLabel labelquali3 = new JLabel();
    
    Dimension dm = new Dimension(1120, 750);
    
    JTextField feld_projektname = new JTextField();
    JTextField feld_projektinhalt = new JTextField();
    JTextField feld_stellenbudget = new JTextField();
    JTextField feld_projektrolle = new JTextField();
    JTextField feld_dauer = new JTextField();
    JTextField quali5 = new JTextField();
    JTextField quali6 = new JTextField();
    JTextField quali7 = new JTextField();
    JTextField quali8 = new JTextField();
    
    JButton save2 = new JButton();
    JButton abbort2 = new JButton();
    JButton match2 = new JButton();


    JLabel label10 = new JLabel();
    JLabel label11 = new JLabel();
    JLabel label12 = new JLabel();
    JLabel label13 = new JLabel();
    JLabel label14 = new JLabel();
    JLabel labelquali4 = new JLabel();
    JLabel labelquali5 = new JLabel();
    JLabel labelquali6 = new JLabel();
    
    
    public void initComponents() {
        
        mitarb.setTitle("Skillplan");
        mitarb.setLayout(null);
        mitarb.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        feld_name.setPreferredSize(new Dimension(100,20));
        feld_vorname.setPreferredSize(new Dimension(100,20));
        feld_adresse.setPreferredSize(new Dimension(100,20));
        feld_telefon.setPreferredSize(new Dimension(100,20));
        feld_email.setPreferredSize(new Dimension(100,20));
        feld_geburtstag.setPreferredSize(new Dimension(100,20));
        feld_entgelt.setPreferredSize(new Dimension(100,20));
        
        quali1.setPreferredSize(new Dimension(100,20));
        quali2.setPreferredSize(new Dimension(100,20));
        quali3.setPreferredSize(new Dimension(100,20));
        quali4.setPreferredSize(new Dimension(100,20));


        save.setText("Mitarbeiter speichern");
        abbort.setText("Abbrechen");
        match.setText("Match");
        mitarb.add(save);
        mitarb.add(abbort);    
        mitarb.add(match);    

        
        save.addActionListener(this);
        abbort.addActionListener(this);
        match.addActionListener(this);

        
        save.setActionCommand("speichern");
        abbort.setActionCommand("abbrechen");
        match.setActionCommand("match");

        
        
        mitarb.add(c_intern);
        mitarb.add(c_extern);
        
        label_mitarbeiter.setText("Mitarbeiter erstellen:");
        label_stelle.setText("Stelle anlegen:");

        mitarb.add(label_mitarbeiter);
        mitarb.add(label_stelle);
        
        label1.setText("Name");
        
        mitarb.add(label1);
        mitarb.add(feld_name);
    
        label2.setText("Vorname");

        mitarb.add(label2);
        mitarb.add(feld_vorname);
    
        label3.setText("Adresse");

        mitarb.add(label3);
        mitarb.add(feld_adresse);

        label4.setText("Telefonnummer");

        mitarb.add(label4);
        mitarb.add(feld_telefon);

        label5.setText("E-Mail");

        mitarb.add(label5);
        mitarb.add(feld_email);

        label6.setText("Geburtsdatum");

        mitarb.add(label6);
        mitarb.add(feld_geburtstag);

    
        label7.setText("Intern");

        mitarb.add(label7);
    
        label8.setText("Extern");
        mitarb.add(label8);
        //mitarb.setPreferredSize(dm);
        
        labelquali1.setText("Art des Hochschulabschlusses");
        labelquali2.setText("Fachgebiet");
        labelquali3.setText("Weitere Kompetenzen");

        mitarb.add(labelquali1);
        mitarb.add(quali1);
        mitarb.setPreferredSize(dm);
        mitarb.add(labelquali2);
        mitarb.add(quali2);
        mitarb.add(labelquali3);
        mitarb.add(quali3);
        mitarb.add(quali4);


        label9.setText("Entgelt");

        mitarb.add(label9);
        mitarb.add(feld_entgelt);
        int x =30;
        
        label_mitarbeiter.setBounds(50, x, 150, 20);x=x+70;
        

        
        label1.setBounds(50, x, 60, 20);
        feld_name.setBounds(250, x, 250, 20);
        x=x+30;
        label2.setBounds(50,x, 60, 20);
        feld_vorname.setBounds(250, x, 250, 20);
        x=x+30;
        label3.setBounds(50, x, 60, 20);
        feld_adresse.setBounds(250, x, 250, 20);x=x+30;
        label4.setBounds(50,x, 160, 20);
        feld_telefon.setBounds(250, x, 250, 20);x=x+30;
        label5.setBounds(50, x, 60, 20);
        feld_email.setBounds(250, x, 250, 20);x=x+30;
        label6.setBounds(50,x, 160, 20);
        feld_geburtstag.setBounds(250, x, 250, 20);x=x+50;        
        label7.setBounds(50, x, 60, 20);
        c_intern.setBounds(150, x, 20, 20);
        c_extern.setBounds(300, x, 20, 20);
        label8.setBounds(250,x, 160, 20);x=x+50;
        labelquali1.setBounds(50, x, 180, 20);
        quali1.setBounds(250, x, 250, 20);
        x=x+30;
        labelquali2.setBounds(50,x, 160, 20);
        quali2.setBounds(250, x, 250, 20);
        x=x+30;
        labelquali3.setBounds(50, x, 160, 20);
        quali3.setBounds(250, x, 250, 20);x=x+30;
        quali4.setBounds(250, x, 250, 20);x=x+50;
        label9.setBounds(50,x, 60, 20);
        feld_entgelt.setBounds(250, x, 150, 20);x=x+60;
        
        save.setBounds(50, x, 190, 25);x=x+75;
        match.setBounds(50, x, 100, 50);

        abbort.setBounds(200, x, 100, 50);
        
        
        mitarb.setVisible(true);
        mitarb.pack();
        
        
        
        
        
        
        
        
        
        feld_projektname.setPreferredSize(new Dimension(100,20));
        feld_projektinhalt.setPreferredSize(new Dimension(100,20));
        feld_stellenbudget.setPreferredSize(new Dimension(100,20));
        feld_projektrolle.setPreferredSize(new Dimension(100,20));
        feld_dauer.setPreferredSize(new Dimension(100,20));

        quali5.setPreferredSize(new Dimension(100,20));
        quali6.setPreferredSize(new Dimension(100,20));
        quali7.setPreferredSize(new Dimension(100,20));
        quali8.setPreferredSize(new Dimension(100,20));


        save2.setText("Stelle anlegen");
        mitarb.add(save2);

        
        save.addActionListener(this);
        abbort.addActionListener(this);
        match.addActionListener(this);

        
        save.setActionCommand("speichern");
        abbort.setActionCommand("abbrechen");
        match.setActionCommand("match");

        
        
        label10.setText("Projektname");
        
        mitarb.add(label10);
        mitarb.add(feld_projektname);
    
        label11.setText("Projektinhalt");

        mitarb.add(label11);
        mitarb.add(feld_projektinhalt);
    
        label12.setText("Stellenbudget");

        mitarb.add(label12);
        mitarb.add(feld_stellenbudget);

        label13.setText("Projektrolle");

        mitarb.add(label13);
        mitarb.add(feld_projektrolle);

        label14.setText("Dauer");

        mitarb.add(label14);
        mitarb.add(feld_dauer);


        labelquali4.setText("Art des Hochschulabschlusses");
        labelquali5.setText("Fachgebiet");
        labelquali6.setText("Weitere Kompetenzen");

        mitarb.add(labelquali4);
        mitarb.add(quali5);
        mitarb.setPreferredSize(dm);
        mitarb.add(labelquali5);
        mitarb.add(quali6);
        mitarb.add(labelquali6);
        mitarb.add(quali7);
        mitarb.add(quali8);

        int x2 =30;
        
        label_stelle.setBounds(600, x2, 100, 20);x2=x2+70;
        
        label10.setBounds(600, x2, 160, 20);
        feld_projektname.setBounds(800, x2, 250, 20);
        x2=x2+30;
        label11.setBounds(600, x2, 160, 20);
        feld_projektinhalt.setBounds(800, x2, 250, 80);
        x2=x2+90;
        label12.setBounds(600, x2, 160, 20);
        feld_stellenbudget.setBounds(800, x2, 250, 20);x2=x2+30;
        label13.setBounds(600,x2, 160, 20);
        feld_projektrolle.setBounds(800, x2, 250, 20);x2=x2+30;
        label14.setBounds(600, x2, 60, 20);
        feld_dauer.setBounds(800, x2, 250, 20);x2=x2+50;
        labelquali4.setBounds(600, x2, 180, 20);
        quali5.setBounds(800, x2, 250, 20);
        x2=x2+30;
        labelquali5.setBounds(600,x2, 160, 20);
        quali6.setBounds(800, x2, 250, 20);
        x2=x2+30;
        labelquali6.setBounds(600, x2, 160, 20);
        quali7.setBounds(800, x2, 250, 20);x2=x2+30;
        quali8.setBounds(800, x2, 250, 20);x2=x2+50;
        
        save2.setBounds(600, x2, 150, 25);
        

    }
    
    int counter = 0;
    static String[][] Dimension = new String[15][];

    static String[] Mitarbeiterx = new String[11];
    
    public static String[] getM() {
        return Mitarbeiterx;
    }

    

    
    
    


    public void build() {
        
        Mitarbeiterx[0] = feld_name.getText();
        Mitarbeiterx[1] = feld_vorname.getText();
        Mitarbeiterx[2] = feld_adresse.getText();
        Mitarbeiterx[3] = feld_telefon.getText();
        Mitarbeiterx[4] = feld_email.getText();
        Mitarbeiterx[5] = feld_geburtstag.getText();
        Mitarbeiterx[6] = feld_entgelt.getText();
        Mitarbeiterx[7] = quali1.getText();
        Mitarbeiterx[8] = quali2.getText();
        Mitarbeiterx[9] = quali3.getText();
        Mitarbeiterx[10] = quali4.getText();
        
    }
    

    
    public void actionPerformed(ActionEvent event) {


        if ("speichern".equals(event.getActionCommand())) {
            
            build();
            
            feld_name.setText("");    
            feld_vorname.setText("");
            feld_adresse.setText("");
            feld_telefon.setText("");
            feld_email.setText("");
            feld_geburtstag.setText("");
            feld_entgelt.setText("");
            quali1.setText("");
            quali2.setText("");
            quali3.setText("");
            quali4.setText("");
            c_intern.setSelected(false);
            c_extern.setSelected(false);
            
        }
        
        
        
        if ("match".equals(event.getActionCommand())){
            
            for ( int i = 0; i<11; i++) {
                System.out.println(Mitarbeiterx[i]);
            }
            
        }
        
        if ("abbrechen".equals(event.getActionCommand())){
        mitarb.dispose();
        }
        
        
    }
    
    
    

}

Ich weiss, es ist sehr unelegant gelöst, aber die build() methode soll eben die JFields auslesen und ein Mitarbeiter-Objekt mit den Parametern ( Name, Vornameetc ) erstellen

Bitte helft mir!
 
Wie wäre es, wenn du uns denn auch verrätst WAS nicht geht? Bzw. was du versucht hast usw.

Außerdem kennen wir deine "Mitarbeiter"-Klasse nicht.
 
Noch drei Kommentare von mir:
1. Mitarbeiter_GUI extends JFrame ist überflüssig. Du nutzt Mitarbeiter_GUI offenbar gar nicht als JFrame.
2. Bevor du aus zig Componenten die Informationen zu einem Mitarbeiter sammelst, versuchs erstmal mit zweien. Wenn das klappt und du verstanden hast wie es geht, kannst du gerne die Anzahl der Komponenten mit Mitarbeiterinformationen erhöhen.
3. verwende einen Layoutmanager.
 
Schonmal vielen Dank für die Aufmerksamkeit!

Hier vorab das Mitarbeiter-Skript:
Java:
import java.util.ArrayList;

public class Mitarbeiter {

    String status, name, vorname, adresse, telefon, email, geburtsdatum, entgelt;
    String[] qualifikationen;
    
    
    public Mitarbeiter(String name, String vorname) {
        this.name = name;
        this.vorname = vorname;
    }
    
    public Mitarbeiter (String status, String name, String vorname, String adresse, String telefon, String email, String geburtsdatum, String[] qualifikationen, String entgelt) {
        
        this.name = name;
        this.vorname = vorname;
        this.adresse = adresse;
        this.telefon = telefon;
        this.email = email;
        this.geburtsdatum = geburtsdatum;
        this.qualifikationen = qualifikationen;
        this.entgelt = entgelt;
        
    }
    
    String getName() {
        return name;
    }
    String getVorname() {
        return vorname;
    }
    String getAdresse() {
        return adresse;
    }
    String getTelefon() {
        return telefon;
    }
    String getEmail() {
        return email;
    }
    String getGeburtsdatum() {
        return geburtsdatum;
    }
    String[] getQualifikationen() {
        return qualifikationen;
    }
    String getEntgelt() {
        return entgelt;
    }
    
    void setName(String name) {
        this.name = name;
    }
    void setVorname(String vorname) {
        this.vorname = vorname;
    }
    void setAdresse(String adresse) {
        this.adresse = adresse;
    }
    void setTelefon(String telefon) {
        this.telefon = telefon;
    }
    void setEmail(String email) {
        this.email = email;
    }
    void setGeburtsdatum(String geburtsdatum) {
        this.geburtsdatum = geburtsdatum;
    }
    void setQualifikationen(String[] qualifikationen) {
        this.qualifikationen = qualifikationen;
    }
    void setEntgelt(String entgelt) {
        this.entgelt = entgelt;
    }
    
    public static boolean einzel_match (Mitarbeiter mitarbeiter, Stelle stelle) {
        
        int counter = 0;
        
        for (int i = 0; i < stelle.qualifikationen.length; i++) {
            
            String c_stelle = stelle.qualifikationen[i];
            
            for (int j = 0; j < 4; j++) {
                
                String c_mitarbeiter = mitarbeiter.qualifikationen[j];
                
                if (c_stelle.equals(c_mitarbeiter)) {
                    counter++;
                    break;

                }
            }
            
        }
        
        if (counter == stelle.qualifikationen.length ) {
            return true;
        } else {
            return false;
        }
        
    }
    
    public static String gesamt_match (Mitarbeiter[] mitarbeiter, Stelle[] stelle) {
        
        int counter = 0;
        ArrayList<string> match = new ArrayList<string>();
        
        for (int i = 0; i < stelle.length; i++) {
            
            Stelle c_stelle = stelle[i];
            
            for (int j = 0; j < mitarbeiter.length; j++) {
                
                Mitarbeiter c_mitarbeiter = mitarbeiter[j];
                if (einzel_match(c_mitarbeiter, c_stelle)) {
                    counter++;
                    System.out.println ("Passender Mitarbeiter für Stelle" + c_stelle.getProjektname() + "gefunden: " + c_mitarbeiter.getVorname() + " " + c_mitarbeiter.getName());
                }
                
            }
            
        }
        
        if (counter == 0) {
            return ("Matchvorgang nicht erfolgreich!");
        } else {
            return ("Matchvorgang erfolgreich! Es wurden insgesamt " + counter + " Mitarbeiter zugewiesen.");
            
        }
        
    }
    
    
}

Und hier nochmal das Mitarbeiter_GUI-Skript, vergesst das gestern (Sorry!)

Java:
import javax.swing.*;

import java.awt.Dimension;
import java.awt.event.*;


public class Mitarbeiter_GUI extends JFrame implements ActionListener {

    JFrame mitarb = new JFrame();
    JTextField feld_name = new JTextField();
    JTextField feld_vorname = new JTextField();
    JTextField feld_adresse = new JTextField();
    JTextField feld_telefon = new JTextField();
    JTextField feld_email = new JTextField();
    JTextField feld_geburtstag = new JTextField();
    JTextField feld_entgelt = new JTextField();
    JTextField quali1 = new JTextField();
    JTextField quali2 = new JTextField();
    JTextField quali3 = new JTextField();
    JTextField quali4 = new JTextField();

    JCheckBox c_intern = new JCheckBox();
    JCheckBox c_extern = new JCheckBox();
    
    JButton save = new JButton();
    JButton abbort = new JButton();
    JButton match = new JButton();


    JLabel label1 = new JLabel();
    JLabel label2 = new JLabel();
    JLabel label3 = new JLabel();
    JLabel label4 = new JLabel();
    JLabel label5 = new JLabel();
    JLabel label6 = new JLabel();
    JLabel label7 = new JLabel();
    JLabel label8 = new JLabel();
    JLabel label11 = new JLabel();
    JLabel labelquali1 = new JLabel();
    JLabel labelquali2 = new JLabel();
    JLabel labelquali3 = new JLabel();
    
    Dimension dm = new Dimension(570, 600);
    
    
    public void initComponents() {

        mitarb.setTitle("Mitarbeiter");
        mitarb.setLayout(null);
        mitarb.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        feld_name.setPreferredSize(new Dimension(100,20));
        feld_vorname.setPreferredSize(new Dimension(100,20));
        feld_adresse.setPreferredSize(new Dimension(100,20));
        feld_telefon.setPreferredSize(new Dimension(100,20));
        feld_email.setPreferredSize(new Dimension(100,20));
        feld_geburtstag.setPreferredSize(new Dimension(100,20));
        feld_entgelt.setPreferredSize(new Dimension(100,20));
        
        quali1.setPreferredSize(new Dimension(100,20));
        quali2.setPreferredSize(new Dimension(100,20));
        quali3.setPreferredSize(new Dimension(100,20));
        quali4.setPreferredSize(new Dimension(100,20));


        save.setText("Speichern");
        abbort.setText("Abbrechen");
        match.setText("Match");
        mitarb.add(save);
        mitarb.add(abbort);    
        mitarb.add(match);    

        
        save.addActionListener(this);
        abbort.addActionListener(this);
        match.addActionListener(this);

        
        save.setActionCommand("speichern");
        abbort.setActionCommand("abbrechen");
        match.setActionCommand("match");

        
        
        mitarb.add(c_intern);
        mitarb.add(c_extern);

        label1.setText("Name");
        
        mitarb.add(label1);
        mitarb.add(feld_name);
    
        label2.setText("Vorname");

        mitarb.add(label2);
        mitarb.add(feld_vorname);
    
        label3.setText("Adresse");

        mitarb.add(label3);
        mitarb.add(feld_adresse);

        label4.setText("Telefonnummer");

        mitarb.add(label4);
        mitarb.add(feld_telefon);

        label5.setText("E-Mail");

        mitarb.add(label5);
        mitarb.add(feld_email);

        label6.setText("Geburtsdatum");

        mitarb.add(label6);
        mitarb.add(feld_geburtstag);

    
        label7.setText("Intern");

        mitarb.add(label7);
    
        label8.setText("Extern");
        mitarb.add(label8);
        //mitarb.setPreferredSize(dm);
        
        labelquali1.setText("Art des Hochschulabschlusses");
        labelquali2.setText("Fachgebiet");
        labelquali3.setText("Weitere Kompetenzen");

        mitarb.add(labelquali1);
        mitarb.add(quali1);
        mitarb.setPreferredSize(dm);
        mitarb.add(labelquali2);
        mitarb.add(quali2);
        mitarb.add(labelquali3);
        mitarb.add(quali3);
        mitarb.add(quali4);


        label11.setText("Entgelt");

        mitarb.add(label11);
        mitarb.add(feld_entgelt);
        mitarb.setPreferredSize(dm);
        int x =30;
        
        label1.setBounds(50, x, 60, 20);
        feld_name.setBounds(250, x, 250, 20);
        x=x+30;
        label2.setBounds(50,x, 60, 20);
        feld_vorname.setBounds(250, x, 250, 20);
        x=x+30;
        label3.setBounds(50, x, 60, 20);
        feld_adresse.setBounds(250, x, 250, 20);x=x+30;
        label4.setBounds(50,x, 160, 20);
        feld_telefon.setBounds(250, x, 250, 20);x=x+30;
        label5.setBounds(50, x, 60, 20);
        feld_email.setBounds(250, x, 250, 20);x=x+30;
        label6.setBounds(50,x, 160, 20);
        feld_geburtstag.setBounds(250, x, 250, 20);x=x+50;        
        label7.setBounds(50, x, 60, 20);
        c_intern.setBounds(150, x, 20, 20);
        c_extern.setBounds(300, x, 20, 20);
        label8.setBounds(250,x, 160, 20);x=x+50;
        labelquali1.setBounds(50, x, 180, 20);
        quali1.setBounds(250, x, 250, 20);
        x=x+30;
        labelquali2.setBounds(50,x, 160, 20);
        quali2.setBounds(250, x, 250, 20);
        x=x+30;
        labelquali3.setBounds(50, x, 160, 20);
        quali3.setBounds(250, x, 250, 20);x=x+30;
        quali4.setBounds(250, x, 250, 20);x=x+50;
        label11.setBounds(50,x, 60, 20);
        feld_entgelt.setBounds(250, x, 150, 20);x=x+60;
        
        save.setBounds(50, x, 100, 25);
        match.setBounds(200, x, 100, 25);

        abbort.setBounds(350, x, 100, 25);
        
        
        mitarb.setVisible(true);
        mitarb.pack();

    }
    
    int counter = 0;
    static Mitarbeiter[] Mitarbeiterx = new Mitarbeiter[15];
    
    public static Mitarbeiter[] getM() {
        return Mitarbeiterx;
    }

    public void build() {
        
        String status = "0";
        if (c_intern.isSelected() && !c_extern.isSelected()) {
            status = "Intern";
        }
        
        if (c_extern.isSelected() && !c_intern.isSelected()) {
            status = "Extern";
        }
        
        String[] qualis = {quali1.getText(), quali2.getText(), quali3.getText(), quali4.getText() };
        
        if (status.equals("Intern")) {
            Intern neu = new Intern(status, feld_name.getText(), feld_vorname.getText(), feld_adresse.getText(), feld_telefon.getText(), feld_email.getText(), feld_geburtstag.getText(), qualis, feld_entgelt.getText());
            Mitarbeiterx[counter] = neu;
            counter++;
            
            System.out.println(neu.status + "\n" + neu.name + "\n" + neu.vorname + "\n" + neu.adresse + "\n" + neu.telefon + "\n" + neu.email + "\n" + neu.geburtsdatum + "\n" + neu.qualifikationen[0] + "\n" + neu.qualifikationen[1] + "\n" + neu.qualifikationen[2] + "\n" + neu.qualifikationen[3] + "\n" +  neu.entgelt);

        }
        
        if (status.equals("Extern")) {
            Extern neu = new Extern(status, feld_name.getText(), feld_vorname.getText(), feld_adresse.getText(), feld_telefon.getText(), feld_email.getText(), feld_geburtstag.getText(), qualis, feld_entgelt.getText());
            Mitarbeiterx[counter] = neu;
            counter++;
            
            System.out.println(neu.status + "\n" + neu.name + "\n" + neu.vorname + "\n" + neu.adresse + "\n" + neu.telefon + "\n" + neu.email + "\n" + neu.geburtsdatum + "\n" + neu.qualifikationen[0] + "\n" + neu.qualifikationen[1] + "\n" + neu.qualifikationen[2] + "\n" + neu.qualifikationen[3] + "\n" +  neu.entgelt);
        }
        
        
        

    }

    
    public void actionPerformed(ActionEvent event) {


        if ("speichern".equals(event.getActionCommand())) {

            

            build();
            
            feld_name.setText("");    
            feld_vorname.setText("");
            feld_adresse.setText("");
            feld_telefon.setText("");
            feld_email.setText("");
            feld_geburtstag.setText("");
            feld_entgelt.setText("");
            quali1.setText("");
            quali2.setText("");
            quali3.setText("");
            quali4.setText("");
            c_intern.setSelected(false);
            c_extern.setSelected(false);

        }
        
        
        
        if ("match".equals(event.getActionCommand())){
            
        }
        
        if ("abbrechen".equals(event.getActionCommand())){
        mitarb.dispose();
        }
        
        
    }
    
    
    

}

Tut mir Leid, ich war gestern etwas im Stress, deswegen hier jetzt geordnet meine Probleme:

1. Im ActionListener ("Speichern"-Button soll eine Methode aufgerufen werden, die ein Mitarbeiter-Objekt erzeugt und den Inhalt der JFields als Parameter zuweist. Das scheint zu klappen:

System.outprint wie im obigen Code , wenn ich 3 mal hintereinander "einen Mitarbeiter anlege":
Intern
1
1
1
1
1
1
1
1
1
1
1
Extern
2
2
2
2
2
2
2
2
2
2
2
Intern
3
3
3
3
3
3
3
3
3
3
3

Also, scheint zu klappen.

Wenn ich den "Match"-Button probeweise mit folgendem Befehl ausstatte:

"System.out.println(Mitarbeiterx[1]);"

Kommt ( natürlich nachdem ich mind. 2 Mitarbeiter angelegt habe):

"Extern@3a503324"

Das verstehe ich schonmal nicht.


So, analog zu der Mitarbeiter_GUI-Maske gibt es eine Stelle_GUI-Maske. Jetzt ist der Moment gekommen, euch den Sinn des Programms zu verraten: Man kann mehrere Mitarbeiter und mehrere Stellen anlegen. Mit einem klick auf den "Match"-Button soll ein weiteres Fenster geöffnet werden, welches passende Mitarbeiter zu passenden Stellen ausgibt ( Dazu werden die "interessanten" JFields wie Qualifikation und Entgelt/Budget verglichen ). So, mein Problem ist, ich kriege die Informationen des Stelle_GUIs nicht in die Mitarbeiter_GUI, wo der Match-Knopf und dementsprechend auch die Match-Methode liegen soll (muss nicht, darum gehts aber auch nicht) Wenn ich zum Beispiel ein Array mit 8 Stellen in Stelle_GUI mit dem Klick auf "Speichern" erzeuge, und diese mir durch den Match-Knopf im Mitarbeiter_GUI anzeigen lassen will, bekomme ich 8 mal "null", statt die eingegebenen Werte. Versteht ihr was ich meine? Habt ihr eine Idee zur Lösung?

Hier das Stelle_GUI-Skript:

Java:
import javax.swing.*;

import java.awt.Dimension;
import java.awt.event.*;


public class Stelle_GUI extends JFrame implements ActionListener {

    JFrame stelle = new JFrame();
    JTextField feld_projektname = new JTextField();
    JTextField feld_projektinhalt = new JTextField();
    JTextField feld_stellenbudget = new JTextField();
    JTextField feld_projektrolle = new JTextField();
    JTextField feld_dauer = new JTextField();
    JTextField quali1 = new JTextField();
    JTextField quali2 = new JTextField();
    JTextField quali3 = new JTextField();
    JTextField quali4 = new JTextField();
    

    JButton save = new JButton();
    JButton abbort = new JButton();
    JButton match = new JButton();


    JLabel label1 = new JLabel();
    JLabel label2 = new JLabel();
    JLabel label3 = new JLabel();
    JLabel label4 = new JLabel();
    JLabel label5 = new JLabel();
    JLabel labelquali1 = new JLabel();
    JLabel labelquali2 = new JLabel();
    JLabel labelquali3 = new JLabel();
    
    Dimension dm = new Dimension(570, 600);
    
    
    public void initComponents2() {



        
        stelle.setTitle("Stelle");
        stelle.setLayout(null);
        stelle.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        feld_projektname.setPreferredSize(new Dimension(100,20));
        feld_projektinhalt.setPreferredSize(new Dimension(100,20));
        feld_stellenbudget.setPreferredSize(new Dimension(100,20));
        feld_projektrolle.setPreferredSize(new Dimension(100,20));
        feld_dauer.setPreferredSize(new Dimension(100,20));

        quali1.setPreferredSize(new Dimension(100,20));
        quali2.setPreferredSize(new Dimension(100,20));
        quali3.setPreferredSize(new Dimension(100,20));
        quali4.setPreferredSize(new Dimension(100,20));


        save.setText("Speichern");
        abbort.setText("Abbrechen");
        match.setText("Match");
        stelle.add(save);
        stelle.add(abbort);    
        stelle.add(match);    

        
        save.addActionListener(this);
        abbort.addActionListener(this);
        match.addActionListener(this);

        
        save.setActionCommand("speichern");
        abbort.setActionCommand("abbrechen");
        match.setActionCommand("match");

        
        
        label1.setText("Projektname");
        
        stelle.add(label1);
        stelle.add(feld_projektname);
    
        label2.setText("Projektinhalt");

        stelle.add(label2);
        stelle.add(feld_projektinhalt);
    
        label3.setText("Stellenbudget");

        stelle.add(label3);
        stelle.add(feld_stellenbudget);

        label4.setText("Projektrolle");

        stelle.add(label4);
        stelle.add(feld_projektrolle);

        label5.setText("Dauer");

        stelle.add(label5);
        stelle.add(feld_dauer);


        labelquali1.setText("Art des Hochschulabschlusses");
        labelquali2.setText("Fachgebiet");
        labelquali3.setText("Weitere Kompetenzen");

        stelle.add(labelquali1);
        stelle.add(quali1);
        stelle.setPreferredSize(dm);
        stelle.add(labelquali2);
        stelle.add(quali2);
        stelle.add(labelquali3);
        stelle.add(quali3);
        stelle.add(quali4);

        int x =30;
        
        label1.setBounds(50, x, 160, 20);
        feld_projektname.setBounds(250, x, 250, 20);
        x=x+30;
        label2.setBounds(50,x, 160, 20);
        feld_projektinhalt.setBounds(250, x, 250, 80);
        x=x+90;
        label3.setBounds(50, x, 160, 20);
        feld_stellenbudget.setBounds(250, x, 250, 20);x=x+30;
        label4.setBounds(50,x, 160, 20);
        feld_projektrolle.setBounds(250, x, 250, 20);x=x+30;
        label5.setBounds(50, x, 60, 20);
        feld_dauer.setBounds(250, x, 250, 20);x=x+50;
        labelquali1.setBounds(50, x, 180, 20);
        quali1.setBounds(250, x, 250, 20);
        x=x+30;
        labelquali2.setBounds(50,x, 160, 20);
        quali2.setBounds(250, x, 250, 20);
        x=x+30;
        labelquali3.setBounds(50, x, 160, 20);
        quali3.setBounds(250, x, 250, 20);x=x+30;
        quali4.setBounds(250, x, 250, 20);x=x+50;
        
        save.setBounds(50, x, 100, 25);
        match.setBounds(200, x, 100, 25);
        abbort.setBounds(350, x, 100, 25);
        
        
        stelle.setVisible(true);
        stelle.pack();

    }
    
    int counter = 0;
    static Stelle[] Stellenx = new Stelle[15];
    
    static Stelle test = Stellenx[1];
    
    public static Stelle[] getS() {
        return Stellenx;
    }
    
    public static String geteinzelstelle() {

        return test.projektinhalt;

    }



    


    public void build() {
        
        String[] qualis = {quali1.getText(), quali2.getText(), quali3.getText(), quali4.getText() };
        
        Stelle neu = new Stelle(feld_projektname.getText(), feld_projektinhalt.getText(), feld_projektrolle.getText(), qualis, feld_stellenbudget.getText(), feld_dauer.getText());
        Stellenx[counter] = neu;
        counter++;


    }

    
    public void actionPerformed(ActionEvent event) {


        if ("speichern".equals(event.getActionCommand())) {

            

            build();
            
            feld_projektname.setText("");    
            feld_projektinhalt.setText("");
            feld_stellenbudget.setText("");
            feld_projektrolle.setText("");
            feld_dauer.setText("");
            quali1.setText("");
            quali2.setText("");
            quali3.setText("");
            quali4.setText("");

        }
        
        
        
        if ("match".equals(event.getActionCommand())){
            
        }
        
        if ("abbrechen".equals(event.getActionCommand())){
        stelle.dispose();
        }
        
        
    }
    
    
    

}

Und zu guter letzt das "Stelle"-Skript:

Java:
public class Stelle {

    String projektname, projektinhalt, projektrolle, stellenbudget, dauer;
    String[] qualifikationen;
    
    public Stelle (String projektname, String projektinhalt, String projektrolle, String[] qualifikationen, String stellenbudget, String dauer) {
        
        this.projektname = projektname;
        this.projektinhalt = projektinhalt;
        this.projektrolle = projektrolle;
        this.qualifikationen = qualifikationen;
        this.stellenbudget = stellenbudget;
        this.dauer = dauer;
        
    }
    
    String getProjektname() {
        return projektname;
    }
    String getProjektinhalt() {
        return projektinhalt;
    }
    String getProjektrolle() {
        return projektrolle;
    }
    String[] getQualifikationen() {
        return qualifikationen;
    }
    String getStellenbudget() {
        return stellenbudget;
    }
    String getDauer() {
        return dauer;
    }
    
    void setProjektname(String projektname) {
        this.projektname = projektname;
    }
    void setProjektinhalt(String projektinhalt) {
        this.projektinhalt = projektinhalt;
    }
    void setProjektrolle(String projektrolle) {
        this.projektrolle = projektrolle;
    }
    void setQualifikationen(String[] qualifikationen) {
        this.qualifikationen = qualifikationen;
    }
    void setStellenbudget(String stellenbudget) {
        this.stellenbudget = stellenbudget;
    }
    void setDauer(String dauer) {
        this.dauer = dauer;
    }
    
    
    
    
}
public class Stelle {

    String projektname, projektinhalt, projektrolle, stellenbudget, dauer;
    String[] qualifikationen;
    
    public Stelle (String projektname, String projektinhalt, String projektrolle, String[] qualifikationen, String stellenbudget, String dauer) {
        
        this.projektname = projektname;
        this.projektinhalt = projektinhalt;
        this.projektrolle = projektrolle;
        this.qualifikationen = qualifikationen;
        this.stellenbudget = stellenbudget;
        this.dauer = dauer;
        
    }
    
    String getProjektname() {
        return projektname;
    }
    String getProjektinhalt() {
        return projektinhalt;
    }
    String getProjektrolle() {
        return projektrolle;
    }
    String[] getQualifikationen() {
        return qualifikationen;
    }
    String getStellenbudget() {
        return stellenbudget;
    }
    String getDauer() {
        return dauer;
    }
    
    void setProjektname(String projektname) {
        this.projektname = projektname;
    }
    void setProjektinhalt(String projektinhalt) {
        this.projektinhalt = projektinhalt;
    }
    void setProjektrolle(String projektrolle) {
        this.projektrolle = projektrolle;
    }
    void setQualifikationen(String[] qualifikationen) {
        this.qualifikationen = qualifikationen;
    }
    void setStellenbudget(String stellenbudget) {
        this.stellenbudget = stellenbudget;
    }
    void setDauer(String dauer) {
        this.dauer = dauer;
    }
    
    
    
    
}

Ich weiss, es ist sauviel zu lesen.. Aber ich weiss nicht, wie ich das Problem sonst verständlich machen kann!;(

edit: das Mit extends.Jframe hab ich mir schon fast gedacht, ist schon beseitigt, denkt euch es hier einfach weg 😀
</string></string>
 
Zuletzt bearbeitet:
Wenn der Parameter dem du System.out.println mitgibst kein String ist, wird lediglich die toString Methode davon ausgerufen und das Ergebnis auf der Konsole ausgegeben. Da du die toString Methode nicht überschrieben hast, wird eben die Methode aus der Elternklasse (Object) genutzt. Und diese gibt nunmal den Namen + die Referenz in textueller Form zurück: "Extern@3a503324"
Wenn du was anderes bekommen willst, musst du eben die toString Methode überschreiben und dort einen schöneren String zusammenbauen.

Bisher macht dein Match Command gar nichts, du solltest uns am besten zeigen was du dort bisher versucht hast.
 
ok Danke!

Wenn ich im Match-Command etwas versuche/eine Methode aufrufe, die in Beziehung zu anderen Objekte steht ( zum Beispiel die Mitarbeiter-Objekte), kommt diese lange Exception:

Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Mitarbeiter_GUI.match(Mitarbeiter_GUI.java:228)
    at Mitarbeiter_GUI.actionPerformed(Mitarbeiter_GUI.java:264)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

Gerade zum Beispiel habe ich folgendes testweise versucht ( Will mich ja zärtlich an den Match-Vorgang annähern, jetzt noch ohne zweite Maske)

in Mitarbeiter_GUI:
Zusätzlich zur build()-Methode, die ja funktioniert, noch eine Methode:

Java:
    public void match() {
        
        if ( Mitarbeiterx[0].status.equals(Mitarbeiterx[1].status)) {
            System.out.println("Passt!");
        }
        
    }

Und beim Match-Command:

ganz einfach

build();

Naja, jetzt bekomme ich dieses riesen-Fehlermeldung. 🙁

edit: mmh, wenn ich testweise Mitabeiterx[0].status gegen Mitabeiterx[0].getCLass ersetze und mit Mitabeiterx[1].getCLass ersetze, passt es. Brauche ich für die interessanten Parameter einen getter?
 
Zuletzt bearbeitet:
Zunächst sind alle Mitarbeiter in deinem Mitarbeiterx Array null, d.h. nicht initialisiert.
Wenn du dann
Java:
Mitarbeiterx[0].status.equals(Mitarbeiterx[1].status
aufrufst, hängt es von der Anzahl der bereits erzeugten Mitarbeiter ab, ob eine NPE fliegt oder nicht. Erst wenn du 2 Mitarbeiter angelegt hast, fliegt keine NPE. Und wieviel Mitarbeiter es gibt, hängt davon ab, wie oft der save-Button gedrückt wurde. Und das wiederum ist aus dem Code nicht ersichtlich.
Ausserdem vergleicht die genannte match-methode zwei Mitarbeiter. Was soll das? Die Logik würde eher zu einer Partnervermittlung passen.
Die von dir beschriebenen macth-methoden würde ich übrigens nicht in irgendwelchen Gui-Klassen unterbringen, sondern in der Mitarbeiter bzw. Stelle-Klasse. Wenn die Stelle-Klasse eine match-methode implementiert, die einen Mitarbeiter als Parameter bekommt, kann die Stelle quasi selber entscheiden, ob der Mitarbeiter passt.
Zur Länge des Codes: Wenn du einen Layoutmanager verwenden würdest, und wenn du dich bei deiner Mitarbeiter-Klasse auf Namen, Vornamen, und 2 Qualifikationen beschränken würdest (und auf die entsprechenden Gui-Elemente), würde der Code sehr viel kürzer werden. So muss man sich durch hunderte Codezeilen ackern, was den Aufwand erhöht, die von dir genannten Codestellen zu finden.
 
Okay alles klar.
Der Mitarbeiter-Mitarbeiter-Vergleich war nur ein Test, der einfachheitheit halber eben M zu M 😉

Habe hier 2 Test-Match-Klassen

Java:
    public void match1() {
        
            if ( Mitarbeiterx[0].getQuali1().equals(Stelle_GUI.getStelle().quali1)) {
                System.out.println("Passt!" + Stelle_GUI.getStelle().quali1);
            }
            if ( !Mitarbeiterx[0].getQuali1().equals(Stelle_GUI.getStelle().quali1)) {
                System.out.println("NEIN!" + Stelle_GUI.getStelle().quali1);
            }    

        
        
    }
    
    public void match(Mitarbeiter[] mitarbeiter, Stelle [] stellen) {
        
        for (int i = 0; i < mitarbeiter.length; i++) {

            if (mitarbeiter[i].getQuali1().equals(stellen[i].getQuali1())){
                System.out.print("Passender Mitarbeiter Nummer " + i + " zu Stelle " + i);
            } else {
                System.out.println("NEIN");
            }
            
        }
        
                
        
        
    }

Stelle_GUI.getStelle() holt sich nur den ersten Stellen-Array-Platz. Damit klappts.
Aber mit der zweiten Methode match(Mitarbeiter[] mitarbeiter, Stelle [] stellen) klappt es nicht so ganz. Die Test-System-outs werden KORREKT ausgeben, eine Zeile später gibt es jedoch die bekannte Fehlermeldung.

Und die Methode ist ja noch nicht einmal gut so, da hier ja gleich viele Mitarbeiter wie Stellen erzeugt werden müssen und das darf nicht sein.

Das sieht dann so aus: (Bei 3 angelegten Stellen, also 3 mal jeweils Speichern gedrückt)

Java:
Passender Mitarbeiter Nummer 0 zu Stelle 0
NEIN
NEIN
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Mitarbeiter_GUI.match(Mitarbeiter_GUI.java:238)
    at Mitarbeiter_GUI.actionPerformed(Mitarbeiter_GUI.java:282)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

Wieso die Exception???:rtfm:

edit: Die Sinnlosigkeit von Zeilen wie
Java:
Passender Mitarbeiter Nummer " + i + " zu Stelle " + i

ist mir schon bewusst, bin hier nur grad ziemlich am rotieren. Das was mich brennend interessiert, ist eben die Ursache besagter Exception!!
 
Zuletzt bearbeitet:
Du durchläufst das ganze Array, wenn es komplett gefüllt wurde ist es okey, aber wenn du eben nur die ersten paar Stellen des Arrays mit werten gefüllt hast, ist der Rest logischerweise weiterhin null und somit erhälst du die Exception.
 
Natürlich!!!!! Danke, hab echt Tomaten auf den Augen...
Mmmh wie mache ich das jetzt bloß, das die Länge beider Container variabel ist... Gegen Listen zu ersetzen ist so ne Sache, hab hier ja quasi alles auf Arrays gestützt
 
Listen wären eigentlich am besten geeignet.
Ansonsten hast du ja noch einen Zähler, welchen du nutzt um den nächsten freien Index anzugeben. Dieser ist im Grunde ja nichts weiter als deine obergrenze. Anstatt also bis mitarbeiter.length durchzugehen, gehst du halt bis counter (oder wie auch immer du den Zähler genannt hast) durch.
Java:
for(int i=0;i<counter;i++){
...
}

Ansonsten kannst du auch einfach das Arrayelement vorher auf null prüfen:
Java:
for(int i=0;i<mitarbeiter.length; i++){
if(mitarbeiter[i] != null){
...
}
}
 
Danke!!

Java:
    public void build_mitarbeiter2() {
        
        String status = "0";
        if (c_intern.isSelected() && !c_extern.isSelected()) {
            status = "Intern";
        }
        
        if (c_extern.isSelected() && !c_intern.isSelected()) {
            status = "Extern";
        }
        
        if (status.equals("Intern")) {
            Intern neu = new Intern(status, feld_name.getText(), feld_vorname.getText(), feld_adresse.getText(), feld_telefon.getText(), feld_email.getText(), feld_geburtstag.getText(), quali1.getText(), quali2.getText(), quali3.getText(), quali4.getText(), feld_entgelt.getText());
            mitarbeiter_liste.add(neu);
            
            System.out.println(neu.status + "\n" + neu.name + "\n" + neu.vorname + "\n" + neu.adresse + "\n" + neu.telefon + "\n" + neu.email + "\n" + neu.geburtsdatum + "\n" + neu.quali1 + "\n" + neu.quali2 + "\n" + neu.quali3 + "\n" + neu.quali4 + "\n" +  neu.entgelt);

        }
        
        if (status.equals("Extern")) {
            Extern neu = new Extern(status, feld_name.getText(), feld_vorname.getText(), feld_adresse.getText(), feld_telefon.getText(), feld_email.getText(), feld_geburtstag.getText(), quali1.getText(), quali2.getText(), quali3.getText(), quali4.getText(), feld_entgelt.getText());
            mitarbeiter_liste.add(neu);
            
            System.out.println(neu.status + "\n" + neu.name + "\n" + neu.vorname + "\n" + neu.adresse + "\n" + neu.telefon + "\n" + neu.email + "\n" + neu.geburtsdatum + "\n" + neu.quali1 + "\n" + neu.quali2 + "\n" + neu.quali3 + "\n" + neu.quali4 + "\n" +  neu.entgelt);
        }
    }

Habe hier schnell eine build-Methode mit Listen gebastelt, analog dazu in der Stellen_GUI-KLasse:

Java:
    public void build_stelle() {

        Stelle neu = new Stelle(feld_projektname.getText(), feld_projektinhalt.getText(), feld_projektrolle.getText(), quali1.getText(), quali2.getText(), quali3.getText(), quali4.getText(), feld_stellenbudget.getText(), feld_dauer.getText());
        stellen_liste.add(neu);
        
    }

Und die dazugehörige Match-Methode:

Java:
    public void match2() {
        
        for ( int i = 0; i < Stelle_GUI.getListe().size(); i++) {
            
            Stelle stelle = Stelle_GUI.getListe().get(i);
            
            for ( int j = 0; j < mitarbeiter_liste.size(); j++) {
                
                Mitarbeiter mitarbeiter = mitarbeiter_liste.get(j);

                if (Stelle_GUI.getListe().get(i).getQuali1().equals(mitarbeiter.getQuali1())) {
                    System.out.println("Passender Mitarbeiter gefunden: Stelle Nummer " + i + " zu Mitarbeiter Nummero " + j);
                } else {
                    System.out.println("Nichts zu holen");
                }
                
            }
            
            
        }
    }

Da passiert aber nichts, wenn ich den match-button betätige.
Vielleicht hast du ja noch einen guten Ratschlag für mich, ich werde derweil deinen letzten versuchen umzusetzen 🙂
 
Erstmal würde ich die foreach schleife nahelegen:
Java:
for(Mitarbeiter m : mitarbeiter) {

}
Damit ist es weitaus angenehmer zu arbeiten als mit int i=..;..;..
Deinen Code kann man damit soweit vereinfachen:
Java:
public void match2() {
	for (Stelle stelle : Stelle_GUI.getListe()) {
		for (Mitarbeiter mitarbeiter : mitarbeiter_liste) {
			if (stelle.getQuali1().equals(mitarbeiter.getQuali1())) {
				System.out.println("Passender Mitarbeiter gefunden...");
			} else {
				System.out.println("Nichts zu holen");
			}
		}
	}
}

Und nun zu deinem Problem:
Was meinst du mit "es passiert nichts"? Passiert rein gar nichts? Oder kommt wird immer nur "Nichts zu holen" ausgegeben?

Sicher das du auch die match2 Methode aufrust und nicht die alte match Methode?
Was für ein Datentyp hat getQuali? Falls es ein selbst definierter Datentyp ist, hasst du auch die equals Methode überschrieben?
Falls es ein String ist, achte auf die gleiche Groß/Kleinschreibung
 
Zuletzt bearbeitet:
Danke, werde die Schleife verändern.

Es wird garnichts ausgegben, auch keine Fehlermeldung.
Groß- und Kleinschreibung wurde beachetet.
Sowohl in Klasse Mitarbeiter als auch in Klasse Stelle ist getQuali1 eine String-Methode
Es wird match2(), also die korrekte Methode aufgerufen.
 
Alles klar, habe durch das viele Alternativmethoden erstellen tatsächlich vergessen, den "Speichern"-Knopf richtig zu besetzen.
Vielen Vielen Dank, es scheint vorerst zu gehen, wenn ich noch Probleme habe, werde ich einfach hier schreiben 🙂
 

Neue Themen


Zurück
Oben