List -Tableview-Javafx-Vererbung

MudiTrue

Mitglied
Hi, bin neu hier hatte gesehen, dass hier einige sehr gute Lösungen vorgeschlagen wurden, da dachte ich, ich versuch mal mein Glück.

Habe folgendes Problem:
VerwaltungsApp (Benutzeroberfläche) mit Javafx Tableview man kann Benutzer hinzufügen.
Die benutzer werden beim start aus einer .dat datei geladen , in der eine Serialized object list steckt.

habe 4 Klassen was die Verwaltung der Personen angeht:

Person ( int Typ,alter ; String vorname,nachname)
Student extends Person (int matrikelnummer ; String Studiengang)
Studentischehilfskraft extends Student (int arbeitsstunden ; String arbeitsort)
Angestellter extends Person (int arbeitsstunden ; String arbeitsort)

Das erste Problem:
Code:
     //Vornameame column
        TableColumn<Person, String> typColumn = new TableColumn<>("Typ");
        typColumn.setMinWidth(200);
        typColumn.setCellValueFactory(new PropertyValueFactory<>("typ"));


Wenn ich jetzt statt TableColumn<Person, String> eher TableColumn<Student, String>
eingebe weil ich die matrikelnummer populaten möchte taucht ein fehler auf und in person habe ich ja die matrikelnummer nicht drin....
________________________________________________________________________


Mein 2. Problem:




Code:
public ObservableList<Person> getPerson(){
        ObservableList<Person> person= FXCollections.observableArrayList();
        int i = indexOfList;

        String vorname=null;
        int arbeitsort= list.indexOf(2);
        String studiengang =null;
        String nachname = null;
        int alter=0;
        int freietage=0;
        int arbeitsstunden=0;
        int matrikelnummer=0;
        int typo=0;




        for(Person b :list){
           System.out.println(i +":  "+  b.toString());
           
           person.add(new Person(b.getVorName(), b.getNachName(), b.getTyp(), b.getAlter(), b.getTage()));
            person.add(new StudentischeHilfskraft(b.getVorName(), b.getNachName(),1, b.getAlter(), b.getTage(),"matrikelnummer","sss",i,"ss"));


            i++;
        };
        return person ;
    }


Aus der liste kann ich ja ganz leicht die informationen rausziehen die ich möchte, alerdings wieder nur bedingt, da ich die Liste in der Klasse Person angelegt habe, die anderen Klassen erben diese zwar auch, und wenn ich list.toString(); ausgeben lasse funktioniert alles einwandfrei und sogar matrikelnummer und studiengang werden ausgegeben,
aber mit der Tableview funktioniert das halt nicht und ich kann die matrikelnummer nicht aus der liste ziehen hängt ja mit problem nummer 1 zusammen.... :/
und ich möchte ungern alle daten in der Klasse Person initialisieren/deklarieren.

Hier der ganze code von der Main methode.

der Code gibt alles 2 mal wieder einmal Oberfläche und einmal in der Console.
Consolenprogramm funktioniert super nur die GUI nicht


Was kann ich jetzt denn tun? Seitze seit 11 Stunden ohne einen fortschritt dran. habe sovieles schon ausgetestet


Danke schonmal!!!!!!
Java:
public class Main extends Application {
    static Scanner scanner = new Scanner(System.in);
    Button button;
    TextField nameInput,vornameInput, alterInput, freieTageInput, arbeitsOrtInput, arbeitsStundenInput, matrikelNummerInput, studiengangInput;
    Stage window;
    TableView<Person> table;
    int indexOfList;
    ChoiceBox<String> typAuswahl;

    public static void main(String[] args) {
        launch(args);

        System.out.println("                                *  Hauptmenue  *");
        System.out.println("                                ________________");
        System.out.println("");
        System.out.println("Waehlen Sie eines der beiden Ausfuehrungarten aus:");
        System.out.println("    ------------------------------------------------------------------------");
        System.out.println("   (1)  GUI");
        System.out.println("   (2)  Console ");
        System.out.println("Geben Sie eine Zahl ein:");
        checkint();
        int w12 = scanner.nextInt();
        switch (w12) {
            case 1:
                launch(args);
                break;
            case 2:
                Hauptmenu();
                break;



            default:    System.out.println("Ungueltige Eingabe; versuchen Sie es erneut:");
                Hauptmenu();
                break;
        }
    }

    public static void Hauptmenu() {
        System.out.println(" ");
        System.out.println(" ");
        System.out.println("                                ________________");
        System.out.println(" ");
        System.out.println("                                *  Hauptmenue  *");
        System.out.println("                                ________________");
        System.out.println("");
        System.out.println("Waehlen Sie eines der beiden Dateiformate aus:");
        System.out.println("    ------------------------------------------------------------------------");
        System.out.println("   (1)  .CSV");
        System.out.println("   (2)  .DAT");
        System.out.println("Geben Sie eine Zahl ein:");
        checkint();
        int w1 = scanner.nextInt();
        switch (w1) {
            case 1: System.out.println(" ");
                System.out.println(" ");
                System.out.println("                                ________________");
                System.out.println(" ");
                System.out.println("                                *  Hauptmenue .CSV *");
                System.out.println("                                ________________");
                System.out.println("");
                System.out.println("Sie koennen hier Personen der Hochschule fuer Technik und Wirtschaft verwalten:");
                System.out.println("    ------------------------------------------------------------------------");
                System.out.println("   (1)  Anlegen");
                System.out.println("   (2)  Suchen nach Arrayposition");
                System.out.println("   (3)  Filtern");
                System.out.println("   (4)  Nach Typ ausgeben");
                System.out.println("   (5)  Alle zeigen");
                System.out.println("   (6)  CSV anzeigen");
                System.out.println("   (7)  GUI- oberfläche");
                System.out.println("   (6)  Programm beenden");
                System.out.println("");
                System.out.println("Geben Sie eine Zahl ein:");
                checkint();
                int w2 = scanner.nextInt();
                switch (w2) {
                    case 1: add();
                        break;
                    case 2: Read();
                        break;

                    case 3: ReadFilter();
                        break;
                    case 4:ReadAll();
                        break;
                    case 5:ReadAll(2);
                        break;
                    case 6:CSVReadALL();
                        break;
                    case 7:
                        break;


                    default:    System.out.println("Ungueltige Eingabe; versuchen Sie es erneut:");
                        Hauptmenu();
                        break;
                }
                break;
            case 2:  System.out.println(" ");
                System.out.println(" ");
                System.out.println("                                ________________");
                System.out.println(" ");
                System.out.println("                                *  Hauptmenue  *");
                System.out.println("                                ________________");
                System.out.println("");
                System.out.println("Sie koennen hier Personen der Hochschule fuer Technik und Wirtschaft verwalten:");
                System.out.println("    ------------------------------------------------------------------------");
                System.out.println("   (1)  Anlegen");
                System.out.println("   (2)  Suchen nach Arrayposition");
                System.out.println("   (3)  Filtern");
                System.out.println("   (4)  Nach Typ ausgeben");
                System.out.println("   (5)  Alle zeigen");
                System.out.println("");
                System.out.println("   (6)  Programm beenden");
                System.out.println("");
                System.out.println("Geben Sie eine Zahl ein:");
                checkint();
                int w3 = scanner.nextInt();
                switch (w3) {
                    case 1: add();
                        break;
                    case 2: Read();
                        break;

                    case 3: ReadFilter();
                        break;
                    case 4:ReadAll();
                        break;
                    case 5:ReadAll(2);
                        break;
                    case 6:CSVReadALL();
                        break;
                    default:    System.out.println("Ungueltige Eingabe; versuchen Sie es erneut:");
                        Hauptmenu();
                        break;
                }
                break;




            default:    System.out.println("Ungueltige Eingabe; versuchen Sie es erneut:");
                Hauptmenu();
                break;
        }




    }

    private static void CSVReadALL() {
        String fileName= "personTest.csv";
        File file = new File(fileName);
        try{
            Scanner inputSream = new Scanner(file);
            while(inputSream.hasNext()){
                String data = inputSream.next();
                System.out.println(data);
            }
            inputSream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
    private static void CSVOutput() {

    }

    private static void add() {
      
      
         System.out.println("Vorname : ");
         String vorname  = scanner.next();

         System.out.println("Nachname : ");
         String nachname  = scanner.next();

         System.out.println("Alter : ");
         checkint();
         int alter =    checkintR(18,65,true);
       
         System.out.println("Freie Wochentage : ");
         checkint();
         int freieTage =    checkintR(1,6,true);

      
      
        System.out.println("Waehlen Sie den Typ der Person aus;");
      
        System.out.println("1 fuer Angestellte ; 2 fuer Student ; 3 fuer studentische Mitarbeiter :   ");
    
        int typ =  checkintR(1,3,false);
      
        switch(typ) {
        case 1:      

             System.out.println("ArbeitsOrt: ");
             String ort  = scanner.next();

      

             System.out.println("Arbeitsstunden pro Woche : ");
             checkint();
             int stunden =    checkintR(1,40,true);
           
             Person.add(new Angestellte(  vorname, nachname,  typ, alter , freieTage, stunden, ort ));
            // Angestellte.add(new Angestellte(vorname, nachname,  typ, alter , freieTage, stunden, ort));
             break;
        case 2:      
             System.out.println("Matrikelnummer : ");
             checkint();
             int matrikel=  checkintR(11111,66666,true);
           
             System.out.println("Studiengang : ");
             String studiengang  = scanner.next();
  
           
             Person.add(new Student( vorname, nachname,  typ, alter , freieTage, matrikel, studiengang ));
        //     Student.add(new Student( vorname, nachname,  typ, alter , freieTage, matrikel, studiengang));
      
            break;
        case 3:      
             System.out.println("Matrikelnummer : ");
             checkint();
             int matrikel1=  checkintR(11111,66666,true);
           
             System.out.println("Studiengang : ");
             String studiengang1  = scanner.next();
  
             System.out.println("ArbeitsOrt: ");
             String ort1  = scanner.next();

             System.out.println("Arbeitsstunden pro Woche : ");
             checkint();
             int stunden1 =    checkintR(1,40,true);

           
             Person.add(new StudentischeHilfskraft(  vorname, nachname,  typ, alter , freieTage, matrikel1,studiengang1, stunden1, ort1 ));
            // StudentischeHilfskraft.add(new StudentischeHilfskraft( vorname, nachname,  typ, alter , freieTage, matrikel1,studiengang1, stunden1, ort1));
      
            break;
      
    
        }


        System.out.println("");
        Hauptmenu();
    }

    public static void Read() {
        System.out.println("Index : ");
        if(Person.getAnzahl() == 0){
            System.out.println("keine Personen eingetragen");
            Hauptmenu();
        }else{
        int index = checkintR(1,Person.getAnzahl(),false);
        Person.read(index-1);

        System.out.println("");
        Hauptmenu();
    }}

    public static void ReadAll(int a ) {
      
        Person.readAll();


        System.out.println("");
        Hauptmenu();
    }

    public static void ReadFilter( ) {

        try {
            Person.readAll();
        } catch (Exception e) {
            e.printStackTrace();
        }


        System.out.println("");
        Hauptmenu();
    }
  
    public static void ReadAll() {
      
       // Person.readAll();
        Student.readAll(2);
        StudentischeHilfskraft.readAll(2);
        Angestellte.readAll(2);

        System.out.println("");
        Hauptmenu();
    }

    public static int checkintR(int start,int end,boolean alter) {
        checkint();
        int value = scanner.nextInt();

        while (value < start || value > end){
            if (alter) {
                System.out.println("Bitte geben Sie eine Zahl zwischen "+start+" und "+end+" ein");
            }else{
                System.out.println("Bitte geben Sie eine Zahl zwischen "+start+" und "+end+" ein");
            }
            return checkintR(start,end,alter);
        }
           return value;
    }

  
    public static void checkint() {
        while (!scanner.hasNextInt()) {
            System.out.println("Bitte geben Sie nur Zahlen ein: ");
            scanner.next();
        }
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        window = primaryStage;
        window.setTitle("Verwaltung!");





        //TypAuswahl
         typAuswahl = new ChoiceBox<>();
        typAuswahl.getItems().addAll("Typ Auswahl","Student","Studentische Hilfskraft","Angestellter");
        typAuswahl.setValue("Typ Auswahl");


        //Vornameame column
        TableColumn<Person, String> typColumn = new TableColumn<>("Typ");
        typColumn.setMinWidth(200);
        typColumn.setCellValueFactory(new PropertyValueFactory<>("typ"));

        //Vornameame column
        TableColumn<Person, String> vornameColumn = new TableColumn<>("Vorname");
        vornameColumn.setMinWidth(200);
        vornameColumn.setCellValueFactory(new PropertyValueFactory<>("VorName"));

        //Name column
        TableColumn<Person, String> nachnameColumn = new TableColumn<>("Nachname");
        nachnameColumn.setMinWidth(200);
        nachnameColumn.setCellValueFactory(new PropertyValueFactory<>("NachName"));



        //Alter column
        TableColumn<Person, Integer> alterColumn = new TableColumn<>("Alter");
        alterColumn.setMinWidth(100);
        alterColumn.setCellValueFactory(new PropertyValueFactory<>("alter"));

        //freieTage column
        TableColumn<Person, Integer> tageColumn = new TableColumn<>("Freie Tage");
        tageColumn.setMinWidth(100);
        tageColumn.setCellValueFactory(new PropertyValueFactory<>("tage"));

        //arbeitsOrtColumn
        TableColumn<Person, Integer> arbeitsOrtColumn = new TableColumn<>("Arbeitsort");
        arbeitsOrtColumn.setMinWidth(100);
        arbeitsOrtColumn.setCellValueFactory(new PropertyValueFactory<>("Arbeitsort"));

        //arbeitsstundenColumn column
        TableColumn<Person, Integer> arbeitsstundenColumn = new TableColumn<>("Arbeitsstunden");
        arbeitsstundenColumn.setMinWidth(100);
        arbeitsstundenColumn.setCellValueFactory(new PropertyValueFactory<>("Arbeitsstunden"));

        //IDColumn column
        TableColumn<Person, Integer> IDColumn = new TableColumn<>("ID");
        IDColumn.setMinWidth(100);
        IDColumn.setCellValueFactory(new PropertyValueFactory<>("Arbeitsstunden"));


        //matrikelnummerColumn column
        TableColumn<Person, Integer> matrikelnummerColumn = new TableColumn<>("Matrikelnummer");
        matrikelnummerColumn.setMinWidth(100);
        matrikelnummerColumn.setCellValueFactory(new PropertyValueFactory<>("matrikelnummer"));

        //arbeitsstundenColumn column
        TableColumn<Person, String> studiengangColumn = new TableColumn<>("Studiengang");
        studiengangColumn.setMinWidth(100);
        studiengangColumn.setCellValueFactory(new PropertyValueFactory<>("studiengang"));


        //Name input
        vornameInput = new TextField();
        vornameInput.setPromptText("Vorname ");
        vornameInput.setMinWidth(100);

        //Name input

        nameInput = new TextField();
        nameInput.setPromptText("Nachname ");
        nameInput.setMinWidth(100);


        //alter input

        alterInput = new TextField();
       alterInput.setPromptText("Alter");

        //freie Tage input
        freieTageInput = new TextField();
        freieTageInput.setPromptText("Freie Tage");


        //arbeitsort input
        arbeitsOrtInput = new TextField();
        arbeitsOrtInput.setPromptText("Arbeitsort");
        //freie Tage input
        arbeitsStundenInput= new TextField();
        arbeitsStundenInput.setPromptText("arbeitsStundenInput");
        //matrikelNummerInput
        matrikelNummerInput = new TextField();
        matrikelNummerInput.setPromptText("matrikelNummerInput");
        //studiengangInput
        studiengangInput = new TextField();
        studiengangInput.setPromptText("studiengangInput");


        //Button
        Button addButton = new Button("Hinzufuegen");
        addButton.setOnAction(e -> addButtonClicked() );

        Button deleteButton = new Button("Loeschen");
        deleteButton.setOnAction(e -> deleteButtonClicked());

        HBox hBox = new HBox();
        hBox.setPadding(new Insets(10,10,10,10));
        hBox.setSpacing(10);
        hBox.getChildren().addAll(typAuswahl,vornameInput,nameInput, alterInput, freieTageInput,arbeitsOrtInput,arbeitsStundenInput,matrikelNummerInput,studiengangInput, addButton, deleteButton);


        table = new TableView<>();
        table.setItems(getPerson());
        table.setItems(getPerson());
        table.getColumns().addAll(typColumn,vornameColumn, nachnameColumn, alterColumn, tageColumn, arbeitsOrtColumn, arbeitsstundenColumn, studiengangColumn, matrikelnummerColumn);

        VBox vBox = new VBox();
        vBox.getChildren().addAll(table, hBox);

        Scene scene = new Scene(vBox);
        window.setScene(scene);
        window.show();

    }



   // private static List<Person> list = (List)Person.loadE("personTest.dat" );//laden aus Datei

    private static List<Person> list = (List)Person.loadE("personTest.dat" );//laden aus Datei


    public ObservableList<Person> getPerson(){
        ObservableList<Person> person= FXCollections.observableArrayList();
        int i = indexOfList;

        String vorname=null;
        int arbeitsort= list.indexOf(2);
        String studiengang =null;
        String nachname = null;
        int alter=0;
        int freietage=0;
        int arbeitsstunden=0;
        int matrikelnummer=0;
        int typo=0;

//        StudentischeHilfskraft studentischeHilfskraft = new StudentischeHilfskraft(vorname,nachname,typo,alter,freietage,matrikelnummer,studiengang,arbeitsstunden,"dd");



        for(Person b :list){
           // System.out.println(i +":  "+  b.toString());
            System.out.println(i +":  "+StudentischeHilfskraft.getArbeitsstunden()+" List"+ StudentischeHilfskraft.getList().get(i).toString());
            person.add(new Person(b.getVorName(), b.getNachName(), b.getTyp(), b.getAlter(), b.getTage()));
            person.add(new StudentischeHilfskraft(b.getVorName(), b.getNachName(),1, b.getAlter(), b.getTage(),b.toString().indexOf("matrikelnummer"),"sss",i,"ss"));
          //  person.add(new Person(b.getVorName(), b.getNachName(), b.getTyp(), b.getAlter(), b.getTage(),b.getMatrikel(),b.getArbeitsstunden(), b.getArbeitsort());

            i++;
        };

/*
        ObservableList<StudentischeHilfskraft> personStu= FXCollections.observableArrayList();
        for(Person b3 :list){
            System.out.println(i +":  "+  b3.toString());
            System.out.println(i +":  "+  b3.toString());
            person.add(new StudentischeHilfskraft(b3.getVorName(), b3.getNachName(),1, b3.getAlter(), b3.getTage(),b3.toString().indexOf("matrikelnummer"),"sss",i,"ss"));
          //  System.out.println(studentischeHilfskraft.getArbeitsort());

            i++;
        }; */

        return person ;
    }


    //Add button clicked
    public void addButtonClicked(){

        /* Person person = new Person( vorname, nameInput.getText(),  1,Integer.parseInt(priceInput.getText()) , 2);
        person.setVorname(nameInput.getText());
        person.setNachName(nameInput.getText());
        person.setAlter((int) Double.parseDouble(priceInput.getText()));
        person.setTage(Integer.parseInt(quantityInput.getText())); */
        //System.out.println(nameInput.getText());

        if(typAuswahl.getValue()=="Student"){
            if(validateAlter(alterInput.getText())&&validatefreieTage(freieTageInput.getText())){
                System.out.println(nameInput.getText() + " Vorname:"+vornameInput.getText()+" Alter;"+Integer.parseInt(alterInput.getText()));
                int typ=2;
                int freieTage=2;
                int stunden=2;
                String ort="BerlinCity";

                Person.add(new Angestellte(vornameInput.getText(),nameInput.getText(),typ,Integer.parseInt(alterInput.getText()),freieTage, stunden, ort ));
                Angestellte.add(new Angestellte(vornameInput.getText(), nameInput.getText(),  typ, Integer.parseInt(alterInput.getText()) ,stunden , stunden, ort));

                //     table.getItems().add(Person.get);

                //table.getItems().add(person);
                nameInput.clear();
                alterInput.clear();
                freieTageInput.clear();
            }
            else{
                System.out.println("Fehler");
            }

        }
        else {
            System.out.println(typAuswahl.getValue());
        }


    }


    //Delete button clicked
    public void deleteButtonClicked(){
        ObservableList<Person> productSelected, allPersons;
        allPersons = table.getItems();
        productSelected = table.getSelectionModel().getSelectedItems();

        productSelected.forEach(allPersons::remove);
    }




    //__________________________________VAlidation

    private boolean validateAlter(String text){
        Pattern p = Pattern.compile("[0-9]+");

        Matcher m = p.matcher(text);
        if(m.find() && m.group().equals(text)){

            if( (Integer.parseInt(text) >=18)&& (Integer.parseInt(text) <=110)){
                return true;
            }

            else{
                Alert alert = new Alert(Alert.AlertType.WARNING);
                alert.setTitle("Validierung vom Alter fehlgeschlagen");
                alert.setContentText("Validierung vom Alter fehlgeschlage; Geben sie ein Alter zwischen 18 und 110 Jahren ein " +
                      text+  " Passt nicht in den Intervall");
                alert.showAndWait();
                return false;
            }
        }
        else{
            Alert alert = new Alert(Alert.AlertType.WARNING);
            alert.setTitle("Validierung vom Alter fehlgeschlagen");
            alert.setContentText("Validierung vom Alter fehlgeschlage; Geben sie ein Alter zwischen 18 und 110 Jahren ein " +
                    text +"Passt nicht in den Intervall");
            alert.showAndWait();
            return false;
        }
    }


    //__________________________________VAlidation

    private boolean validatefreieTage(String text){
        Pattern p = Pattern.compile("[0-9]+");
        Matcher m = p.matcher(text);
        if(m.find() && m.group().equals(text)){

            if( (Integer.parseInt(text) >=0)&& (Integer.parseInt(text) <=6)){
                return true;
            }

            else{
                Alert alert = new Alert(Alert.AlertType.WARNING);
                alert.setTitle("ValidateNumbverrr");
                alert.setContentText("Sie können Maximal 6 freie Tage in der Woche habe und Minimal 0 " +
                        " Somit stimmt "+text+" nicht überein");
                alert.showAndWait();
                return false;
            }
        }
        else{
            Alert alert = new Alert(Alert.AlertType.WARNING);
            alert.setTitle("ValidateNumbverrr");
            alert.setContentText("Bitte eine Zahl eingeben "+text+" ist keine Zahl");
            alert.showAndWait();
            return false;
        }
    }



}
 
X

Xyz1

Gast
habe sovieles schon ausgetestet
Wir schreiben hier Dir doch keine fertige Uni-Verwaltung.... Das kannst Du schön selbst machen.... und auf die Tränendrüse drücken gibts bei mir nicht.

populaten möchte taucht ein fehler auf und in person habe ich ja die matrikelnummer nicht drin....
das ist verständlich, weil der Typ der Liste Person ist.
Überlege Dir auf wie viele Arte das zu umgehen ist.
Am Besten wäre noch eine erweiterbare/ausklappbare Liste und eine Fallunterscheidung vorzunehmen....

Das ist similar zum ersten Problem....

Noch Fragen?
 

MudiTrue

Mitglied
Wir schreiben hier Dir doch keine fertige Uni-Verwaltung.... Das kannst Du schön selbst machen.... und auf die Tränendrüse drücken gibts bei mir nicht.
Danke für deine unverschämte Antwort. Ich habe lediglich nur auf einige Tips gehofft. Wer hat was vom Schreiben erwähnt? Es ist doch schon fertig, nur die TableView spackt.....
das ist verständlich, weil der Typ der Liste Person ist.
Überlege Dir auf wie viele Arte das zu umgehen ist.
Am Besten wäre noch eine erweiterbare/ausklappbare Liste und eine Fallunterscheidung vorzunehmen....

Klar das weis ich ja, allerdings wusste ich nicht, wie ich es sonst machen sollte... erweiterbare Liste? inwiefern?
 
X

Xyz1

Gast
Eine erweiterbare Liste meinte ich so was:
Code:
A         B         C         
aaa.......-.........-.........
aa........b.........-.........
a.........bb........ccc.......
aa........b.........cc........
aaaa......-.........-.........

verständlich?
 

MudiTrue

Mitglied
danke dir für die Hilfe.

klar verständlich, aber ich hab es doch genauso.. :confused:
Code:
Name                 Matrikel        Studiengang       4.Coloum
DerWissende.-. 333333-.        Informatik         auchIn Liste
MudiTrue .... .    33332.-.        Sport                  erscheint aber
a.........                  bb.......         .ccc.......              nicht
aa.......                 .b.........          cc........
aaaa.....                .-........           .-.........




Ich glaube ich hatte mein problem schlecht erklärt oder? jetzt bin ich noch verwirrter....

die ersten 4 columns kann ich sehen, die restlichen aber nicht, da sind irgendwelche defaultwerte die ich einfach eingegeben habe, laden aber nicht von der .dat

Ich habe halt nur eine liste <Person> und da sind 8 items enthalten Name Matrikel Studiengang 4.Coloum nummer Handy etc

in der Console mache ich das selbe, da lädt aber alles ganz normal von der einen List und alle coloumns erscheinen , meinst du etwas ich soll 2 verschiedene Tables erstellen?
 

mihe7

Top Contributor
Meinst Du so etwas in der Richtung?

Java:
matrikelnummerColumn.setCellValueFactory(data -> new ReadOnlyObjectWraper<String>(
    (data.getValue() instanceof StudentischeHilfskraft)
        ? ((StudentischeHilfskraft) data.getValue()).getMatrikel()
        : ""));
 

MudiTrue

Mitglied
Meinst Du so etwas in der Richtung?

Java:
matrikelnummerColumn.setCellValueFactory(data -> new ReadOnlyObjectWraper<String>(
    (data.getValue() instanceof StudentischeHilfskraft)
        ? ((StudentischeHilfskraft) data.getValue()).getMatrikel()
        : ""));
VIELEN DANK!!!!!

das löst zwar nicht mein Problem aber dank dir nen Stück viel weiter.

mein Problem liegt in der ObservableList<Person> getPerson() methode

Java:
person.add(new StudentischeHilfskraft(b.getVorName(), b.getNachName(),b.getTyp(), b.getAlter(), b.getTage(),    0 , " LEER ",000,"ArbeitsOrt"));

--->> 0 , " LEER ",000,"ArbeitsOrt"
Die 4 sind zwar in meiner list aber bekomm die nicht einzeln ausgebeben.
bei einem b.toString() funkt die ganze ausgabe, deshalb dachte ich mir ich benutzt mal nen string.split() aber der wird überlastet... und crashed irgendwann wenn ich einen part rausnehmen möchte.
Java:
String string = list.get(i).toString();
            String parts[] = string.split(":");
            for(int g =0; g<parts.length;g++){
                System.out.println("------>" +parts[g]);

wenn ich es doch schaffen sollte den string zu splitten, dann würde es easy gehen.
zb. part[4]=matrikelnummer; und die Tabelle würde dies ausgeben
 

mihe7

Top Contributor
Mach doch einfach
Java:
public ObservableList<Person> getPerson(){
        return FXCollections.observableArrayList(list);
}
 

MudiTrue

Mitglied
Mach doch einfach
Java:
public ObservableList<Person> getPerson(){
        return FXCollections.observableArrayList(list);
}
omg .... danke hahah
ich bin gerade fertig geworden mit meiner Lösung und dann kommt einfach nur ein returnwert haha dankeeee

ich zeig dir mal was ich gemacht habe o_O:rolleyes::confused:


Java:
  public ObservableList<Person> getPerson(){
        ObservableList<Person> person= FXCollections.observableArrayList();
        int i = indexOfList;




        for(Person b :list){
            // System.out.println(i +":  "+  b.toString());

if(b.getTyp()==1){


    System.out.println("Das sind die Splittungen"  +" | ______________________________________________________ab hier tyname : "+b.getTypName());
    String string = list.get(i).toString();
    String parts[] = string.split(":");
    for(int g =0; g<parts.length;g++){
        System.out.println("------>" +parts[g]);
    }

    System.out.println("------<<<<<<<<<<<<<<<<<<<<<<>" +parts[5]);

    System.out.println("Das STring :: " +b.toString() +"    TYP!" +b.getTyp());
      System.out.println("Das sind ddd    " +Integer.parseInt(parts[13]));

    //  person.add(new Person(b.getVorName(), b.getNachName(), b.getTyp(), b.getAlter(), b.getTage()));
    person.add(new StudentischeHilfskraft(b.getVorName(), b.getNachName(),b.getTyp(), b.getAlter(), b.getTage(), 0, null,Integer.parseInt(parts[13]),parts[11]));

    i++;
}

           else if(b.getTyp()==2){


    System.out.println("Das sind die Splittungen"  +" | ab hier Studen Typname : "+b.getTypName());

    // SPlit beginnt vom string
    String string = list.get(i).toString();
    String parts[] = string.split(":");
    for(int g =0; g<parts.length;g++){
        System.out.println("------>" +parts[g]);
    }

    System.out.println("------<<<<<<<<<<<<<<<<<<<<<<>" +parts[5]);

    System.out.println("Das STring :: " +b.toString() +"    TYP!" +b.getTyp());
    //   System.out.println("Das sind ddd    " +b.toString());

    //  person.add(new Person(b.getVorName(), b.getNachName(), b.getTyp(), b.getAlter(), b.getTage()));
    person.add(new StudentischeHilfskraft(b.getVorName(), b.getNachName(),b.getTyp(), b.getAlter(), b.getTage(),Integer.parseInt(parts[3]), parts[13],0,null));

    i++;

            }



                //Studentische Mitarbeiter

           else if(b.getTyp()==3){
    System.out.println("Das sind die Splittungen"  +" | ab hier tyname : "+b.getTypName());




    String string = list.get(i).toString();
    String parts[] = string.split(":");
    for(int g =0; g<parts.length;g++){
        System.out.println("------>" +parts[g]);
    }

   // System.out.println("------<<<<<<<<<<<<<<<<<<<<<<  5 Stelle !" +parts[5]);



    person.add(new StudentischeHilfskraft(b.getVorName(), b.getNachName(),b.getTyp(), b.getAlter(), b.getTage(),Integer.parseInt(parts[3]), parts[13],Integer.parseInt(parts[17]),parts[15]));

    i++;
            }

        }



        return person ;
 
    }




ich sitze so lange dran nur wegen einer zeile? hahahah ich kriege meine macken , danke nochmal!!!!!
 
X

Xyz1

Gast
@MudiTrue Habe das Problem nachgeblättert.... Java ist invariant. Mach das doch einfach so:

CD3.png

Person, Student und SMitarbeiter können nach einer Zeile gefragt werden....
und wenn Student oder Person zum Beispiel keine Matrikelnummer anbieten dann wird "" (String ohne Inhalt) oder null von TRow für TCol zurück-gegeben.
ListOfPerson hält einfach eine Liste mit Personen....
 

MudiTrue

Mitglied
@MudiTrue Habe das Problem nachgeblättert.... Java ist invariant. Mach das doch einfach so:

Anhang anzeigen 11058

Person, Student und SMitarbeiter können nach einer Zeile gefragt werden....
und wenn Student oder Person zum Beispiel keine Matrikelnummer anbieten dann wird "" (String ohne Inhalt) oder null von TRow für TCol zurück-gegeben.
ListOfPerson hält einfach eine Liste mit Personen....
Danke dir sehr!
hat jetzt alles geklappt

Danke euch beiden für eure Mühen! :D !!!!!!!
endlich fertig
Auf zum nächsten Abenteuer
 

mihe7

Top Contributor
Die Frage an sich ist gut, auch die "Präsentation" der Frage. Mit der Fragestellung selbst habe ich eher meine Probleme.

Zum Thema: evtl. sollte man etwas wie eine MultiCellValueFactory einführen, um eine ähnliche Funktionalität wie JTable#setDefaultRenderer zu erhalten.
 
X

Xyz1

Gast
Ich habe es jetzt mal so gemacht:
(Daten 1)
Java:
abstract class APerson {
    abstract TRow getTRow();
}

class Person extends APerson {
    private final String nname;
    private final String vname;

    Person(String nname, String vname) {
        this.nname = nname;
        this.vname = vname;
    }

    @Override
    TRow getTRow() {
        return new TRow(new TCol[]{
            new TCol(nname),
            new TCol(vname),
            new TCol("Person keine MN"),
            new TCol("Person kein NC"),
            new TCol("Person keine WS"),});
    }
}

class Student extends Person {
    private final String matrikeln;
    private final String nc;

    Student(String nname, String vname, String matrikeln, String nc) {
        super(nname, vname);
        this.matrikeln = matrikeln;
        this.nc = nc;
    }

    @Override
    TRow getTRow() {
        TRow tRow = super.getTRow();
        return new TRow(new TCol[]{
            tRow.getTCol(0),
            tRow.getTCol(1),
            new TCol(matrikeln),
            new TCol(nc),
            new TCol("Student keine WS"),});
    }
}

class SMitarbeiter extends Student {
    private final int wochens;

    SMitarbeiter(String nname, String vname, String matrikeln, String nc, int wochens) {
        super(nname, vname, matrikeln, nc);
        this.wochens = wochens;
    }

    @Override
    TRow getTRow() {
        TRow tRow = super.getTRow();
        return new TRow(new TCol[]{
            tRow.getTCol(0),
            tRow.getTCol(1),
            tRow.getTCol(2),
            tRow.getTCol(3),
            new TCol(((Integer) wochens).toString()),});
    }
}

mit (Daten 2)
Java:
class TCol {
    private final String s;

    TCol(String s) {
        this.s = s;
    }

    String getString() {
        return s;
    }
}

class TRow {
    private final TCol[] tc;

    TRow(TCol[] tc) {
        this.tc = tc;
    }

    TCol getTCol(int x) {
        return tc[x];
    }
}

mit ("Oberfläche")
Java:
class ListOfPersons {
    public static void main(String[] args) {
        ListOfPersons listOfPersons = new ListOfPersons(new Person[]{
          
            new Student("fällt keiner", "ein1", "123", "1.23"),
            new Student("fällt keiner", "ein2", "321", "3.21"),
            new SMitarbeiter("fällt keiner", "ein3", "213", "3.21", 40),
            new Person("Hausmeister", "schlau"),
      
        });
        JFrame f = new JFrame();
        JTable t = new JTable(new AbstractTableModel() {
            @Override
            public String getColumnName(int column) {
                String[] s = {"Nachname", "Vorname", "Matrikeln", "NC", "WS"};
                return s[column];
            }

            @Override
            public Class<?> getColumnClass(int columnIndex) {
                return String.class;
            }
          
            @Override
            public int getRowCount() {
                return listOfPersons.getPersons().size();
            }

            @Override
            public int getColumnCount() {
                return 5;
            }

            @Override
            public Object getValueAt(int rowIndex, int columnIndex) {
                return listOfPersons.getPersons().get(rowIndex).getTRow().getTCol(columnIndex).getString();
            }
        });
      
        f.getContentPane().add(new JScrollPane(t));
        f.setSize(800, 200);
        f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        f.setVisible(true);
    }

    private final List<APerson> persons;

    ListOfPersons(APerson[] p) {
        persons = Arrays.asList(p);
    }

    List<APerson> getPersons() {
        return persons;
    }
}

. @mrBrown , die Zuständigkeiten sind getrennt, so stimmt das.

Oberfläche:

Unbenannt9.PNG
 
X

Xyz1

Gast
@mrBrown Was du als " Bullshit " bezeichnest, ist die hiernach gefragte Vererbung....

Wie immer gilt: Liefere ein valides Gegenargument - oder bezeichne Anderes nicht als Bullshit....

Du willst doch vielleicht mal in der SE tätigk werden - oder sogar ein Projekt leiten.... Dabei hast du noch viel an Deinem Verhalten zu ändern - sofern alle dich nicht mögen sollen.
 

mrBrown

Super-Moderator
Mitarbeiter
@mrBrown Was du als " Bullshit " bezeichnest, ist die hiernach gefragte Vererbung....
Nein.
Die Vererbung ist okay. Bullshit ist es, die Darstellung in die Domäne hineinzuziehen (das genaue Gegenteil von "Zuständigkeiten sind getrennt") und es dabei erforderlich zu machen, dass alle Klassen die Attribute aller anderen Klassen kennen.

Wie immer gilt: Liefere ein valides Gegenargument - oder bezeichne Anderes nicht als Bullshit....
Hab ich, mehrfach, du müsstest nur lesen und verstehen. Im Gegensatz zu dir kann ich meine Aussagen begründen.
 
X

Xyz1

Gast
Person, Student und SMitarbeiter müssen zumindest wissen (ein Attribut haben), an ab welcher Position sie (ihre Attribute) in einer Zeile eingefügt werden müssen. Eine scharfe Trennung ist das auch nicht....
 

mrBrown

Super-Moderator
Mitarbeiter
Person, Student und SMitarbeiter müssen zumindest wissen (ein Attribut haben)
Sie müssen auch wissen, welche Werte aus allen anderen Klassen angezeigt werden, um Platzhalter darzustellen -> Starke (aber nicht mal vom Compiler prüfbare) Kopplung zwischen allen Klassen der Hierarchie.

an ab welcher Position sie (ihre Attribute) in einer Zeile eingefügt werden müssen
Eben, die Klassen müssen wissen, wie sie dargestellt werden -> Starke Kopplung von Domäne an View.
Und daraus folgend: keine Möglichkeit, die View anzupassen. Nicht mal möglich, die Tabellenspalten umzusortieren.
 

mihe7

Top Contributor
Ich dachte eher an so was (ungetestet):

Java:
import java.util.HashMap;
import java.util.Map;

import javafx.beans.property.ReadOnlyStringProperty;
import javafx.beans.property.ReadOnlyStringWrapper;
import javafx.beans.value.ObservableValue;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableColumn.CellDataFeatures;
import javafx.util.Callback;

public class MultiCellValueFactory<S,T> implements Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>> {
    private final Map<Class<? extends S>, Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>>> factories =
        new HashMap<>();

    public void setCellValueFactory(Class<? extends S> clazz, Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>> factory) {
        factories.put(clazz, factory);
    }

    @Override
    public ObservableValue<T> call(CellDataFeatures<S,T> data) {
        if (data.getValue() != null) {
            Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>> cb =
                factories.get(data.getValue().getClass());
            if (cb != null) {
                return cb.call(data);
            }
        }
        return null;
    } 
}

Und dann
Java:
MultiCellValueFactory<Person,String> mcvf = new MultiCellValueFactory<Person,String>();
mcvf.setCellValueFactory(Student.class, data -> return new SimpleStringProperty("Keine WS"));
mcvf.setCellValueFactory(SMitarbeiter.class, data -> return new SimpleStringProperty(((SMitarbeiter) data.getValue()).getWochenstunden().toString()));
...
col4.setCellValueFactory(mcvf);
 

mihe7

Top Contributor
Die Vererbung hast Du in den Domänenklassen Person, Student, SMitarbeiter. Die steckst Du nach belieben in die ListOfPerson. MultiCellValueFactory ersetzt das statische "instanceof" durch eine dynamische Map. Durch
mcvf.setCellValueFactory(SMitarbeiter.class, f);
kann man in f sicher sein, dass data.getValue() auf SMitarbeiter gecastet werden kann :)
 
X

Xyz1

Gast
mcvf.setCellValueFactory(Student.class, data -> return new SimpleStringProperty("Keine WS"));
Das Problem ist einfach dass mcvf/CellValueFactory einfach eine cast-Fallunterscheidung durchführt und damit das Liskovsche' Substitutionsprinzip nicht einhält. (eines der SOLID-Prinzipien ....)

damit könnte man sich die Vererbung ja gleich "schenken"....

Nebenbei, Wem langweilig ist, der kann hier mal lesen: https://softwareengineering.stackex...-you-explain-separation-of-concerns-to-others

Stellst du dich extra so dumm?
nein, denke schon auch nach. :rolleyes:
 

mrBrown

Super-Moderator
Mitarbeiter
X

Xyz1

Gast
Ähm, das heißt, falls ihn nicht alle nicht mögen sollen, soll er sein Verhalten beibehalten? Warum sollte er denn wollen, dass ihn alle nicht mögen sollen?
Der letzte Halbsatz
sofern alle dich nicht mögen sollen.
war logisch nicht richtig. :rolleyes:

Aber es ist witzig dachte fällt gar niemandem auf.
Was/warum kommst du aufeinmal um die Ecke , @Meniskusschaden ?

Fix:
Du willst doch vielleicht mal in der SE tätigk werden - oder sogar ein Projekt leiten.... Dabei hast du noch viel an Deinem Verhalten zu ändern - sofern alle zumindest einer dich nicht mögen soll en.
 

mihe7

Top Contributor
public void setCellValueFactory(Class<? extends S> clazz, Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>> factory)

clazz ist vom Typ S oder einem davon abgeleiteten Typ.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
Rakshan Reading through list of objects Allgemeine Java-Themen 8
L Unterschied zwischen List und LinkedList implementierung? Allgemeine Java-Themen 15
Monokuma String List nach Zahlen und Worten sortieren Allgemeine Java-Themen 9
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
W Collections Suche etwas Sorted-List-Artiges...hat jemand eine Idee? Allgemeine Java-Themen 13
R convert 2d array list to 2d array Allgemeine Java-Themen 1
B List<Integer> ist List<Double> ? Allgemeine Java-Themen 6
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
G Neues Objekt aus List<JsonObject> mit Stream Allgemeine Java-Themen 4
J Array-List Bubble-Sort Allgemeine Java-Themen 12
U javax.mail.Folder.list() zeigt nicht alle Ordner Allgemeine Java-Themen 5
Hacer List<? super E> Allgemeine Java-Themen 10
C Objekte in Array List speichern? Allgemeine Java-Themen 1
P List<Type> Konvertieren in List<List<Type>> Allgemeine Java-Themen 3
P Sorted List o.ä. Allgemeine Java-Themen 2
M Erste Schritte List<> unbekannt?? Allgemeine Java-Themen 8
M List casting error Allgemeine Java-Themen 3
Messoras List zeigt nur das letzte Element an Allgemeine Java-Themen 14
K Collections Collection<> mit List<String> abgleichen? Allgemeine Java-Themen 10
A List<String> auf doppelte Einträge überprüfen Allgemeine Java-Themen 4
U EJB Entity mit List Problem Allgemeine Java-Themen 2
? Objects aus List aussortieren Allgemeine Java-Themen 9
B List Pointer zurücksetzen Allgemeine Java-Themen 10
J Elemente zu einer List hinzufügen? Allgemeine Java-Themen 9
T Liste mit GregorianCalendar-Objekten in List einlesen, mit Collection sortieren und ausgeben Allgemeine Java-Themen 3
N List auf null prüfen Allgemeine Java-Themen 2
G List<Person> sortieren Allgemeine Java-Themen 6
A Probleme mit ConcurrentHashMap und List Allgemeine Java-Themen 3
C Komisches Verhalten zwischen Set und List bei contains Allgemeine Java-Themen 6
N Inverted index / inverted list Allgemeine Java-Themen 2
X Eine Map mit X -> List<Y>? Allgemeine Java-Themen 8
Shoox HashMaps in List? Allgemeine Java-Themen 3
B Frage zu Interface und List Allgemeine Java-Themen 4
H List wird nicht richtig gefüllt Allgemeine Java-Themen 6
Z aus private List<???> list eintrag löschen Allgemeine Java-Themen 4
L List <Hauser> in Combobox einfügen Allgemeine Java-Themen 5
isowiz java.util.List: Sortierung nicht nach bestimmten Attribut? Allgemeine Java-Themen 4
K von List getSelected auf ResultSet Datenbank löschen Allgemeine Java-Themen 2
E Speicher frei machen (List) Allgemeine Java-Themen 9
K List in Teillisten zerlegen Allgemeine Java-Themen 2
B Probleme mit awt.List in Chatprogramm Allgemeine Java-Themen 14
MQue List<String> aus List<Object> generieren Allgemeine Java-Themen 2
B List = ArrayList ? Allgemeine Java-Themen 12
N List<? implements "Interface"> geht nicht Allgemeine Java-Themen 13
G Byte- List mit einem Iterator durchlaufen Allgemeine Java-Themen 5
G Linked List zwischen zwei Threds übergeben Allgemeine Java-Themen 11
S List<Double> oder Double[] in double[] zu konvertieren Allgemeine Java-Themen 6
G Methode akzeptiert List<ParentClass> aber nicht List&l Allgemeine Java-Themen 2
G List- Einträge löschen Allgemeine Java-Themen 3
G java.util.List klonen Allgemeine Java-Themen 17
S Collections.binarySearch(list,"a") Allgemeine Java-Themen 7
K Bound mismatch: The generic method sort(List<T>) of ty Allgemeine Java-Themen 4
K "Too many open files" bei Property List Allgemeine Java-Themen 5
P List in Hashmap schreiben Allgemeine Java-Themen 5
J linked list per reverse() "umdrehen" Allgemeine Java-Themen 11
P java.util.List - Typ überschreiben Allgemeine Java-Themen 9
G Arraylist statt List - Sehr schlimm? Allgemeine Java-Themen 8
G List mit selbstdefinierten Objekten sortieren Allgemeine Java-Themen 2
M Datenstrukrue, List<Map<Integer, Map<String, . Allgemeine Java-Themen 2
F List<String> zu byte[] Allgemeine Java-Themen 7
G Map oder List mit festgelegter Reihenfolge Allgemeine Java-Themen 4
M Pendant zu list() und array() aus PHP in Java gegeben? Allgemeine Java-Themen 5
J Problem mit List Allgemeine Java-Themen 2
byte Generic Type einer List zur Laufzeit rausfinden? Allgemeine Java-Themen 4
S Generics List Allgemeine Java-Themen 3
G Inhalt einer Textdatei in eine AWT List schreiben Allgemeine Java-Themen 3
C access control list in java Allgemeine Java-Themen 7
T List.isEmpty() klappt nicht?!?!? Allgemeine Java-Themen 5
MiMa Filtern von TableView Liste Allgemeine Java-Themen 2
E TableView Probleme Allgemeine Java-Themen 7
J Integration pay Pale in eine JavaFx Desktop Application Allgemeine Java-Themen 1
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
berserkerdq2 Jemand einen Tipp wie man ein Javafx-Hintergrund "dynamisch" macht Allgemeine Java-Themen 3
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
berserkerdq2 Frage zu IntelliJ und JavaFX Allgemeine Java-Themen 1
thor_norsk Eclipse - Fehlermeldung - JavaFX Allgemeine Java-Themen 24
volcanos JavaFX-Programme nur in NetBeans selber ausführbar ! command_line: NoClassDefFoundError Allgemeine Java-Themen 39
G JavaFX Maven Projekt als .exe Datei exportieren Allgemeine Java-Themen 10
C Java11+ JavaFX HtmlEditor ContextMenu neue MenuItems hinzufügen Allgemeine Java-Themen 5
G JavaFX var Ausdruck Allgemeine Java-Themen 1
G javafx "class path" exception Allgemeine Java-Themen 5
K Anzeigemöglichkeit von Bildern in JavaFX mit Hilfe von MongoDB GridFS Allgemeine Java-Themen 0
M JavaFX Allgemeine Java-Themen 13
P JavaFX Anwendung beendet sich selbst nur als Jar Allgemeine Java-Themen 40
L JavaFX JavaFX Chart in Apache Poi Excel Datei Allgemeine Java-Themen 2
A Zusammenspiel javafx Fenster Allgemeine Java-Themen 1
D JavaFX mit JDK 12 Allgemeine Java-Themen 31
H Internationalisierung I18n in JavaFx? Allgemeine Java-Themen 7
Tarrew JavaFX: K-NN Decision Boundary plotten (Mesh-Grid, Polylines, ... ?? ) Allgemeine Java-Themen 1
D Compiler-Fehler JavaFX - Bekomme Fehlermeldungen nicht weg Allgemeine Java-Themen 31
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
RalleYTN 2D-Grafik Bild ohne AWT, Swing und JavaFX rotieren Allgemeine Java-Themen 12
U JAVAFX Simulation Allgemeine Java-Themen 1
M javafx ComboBox- Nullpointer Exception Allgemeine Java-Themen 6
L Eclipse JavaFX Klasse starten programmatisch Allgemeine Java-Themen 1
Sam96 JavaFX Benutzerrechte Allgemeine Java-Themen 6
J javaFX mySQL Allgemeine Java-Themen 3
P JavaFX HTMLEditor Menü Allgemeine Java-Themen 0

Ähnliche Java Themen

Neue Themen


Oben