JavaFX Checkbox Problem

jimb0p

Erfahrenes Mitglied
Hallo Zusammen,

ich habe in einem Tableview in einer Spalte pro Zeile eine Checkbox drin die man anhaken kann. Das funktioniert soweit auch sehr gut, jedoch muss ich vorher immer die Zeile erst selektieren und kann dann erst die korrekte Checkbox bearbeiten. Ich habe die Checkbox wie folgt in meine Spalte gepackt:

Java:
        //Cell Factory für den Newsletter Haken
        clmnNewsletter.setCellFactory(column -> {
            return new TableCell<Artikel, Boolean>(){
                private CheckBox checkBox = new CheckBox(); 
                NewsletterChangeListener changeListener = new NewsletterChangeListener(controller);
                @Override
                protected void updateItem(Boolean item, boolean empty){
                    super.updateItem(item, empty);
                    TableRow<?> tableRow = getTableRow();
                    Artikel tmp = (Artikel) tableRow.getItem();
                    setText("");//damit beim filtern die leeren zeilen leer bleiben
                    checkBox.selectedProperty().removeListener(changeListener);
                    if(tmp != null){
                        if(tmp.getExpToNewsletter().get()){
                            checkBox.setSelected(true);
                        }else{
                            checkBox.setSelected(false);
                        }
                        checkBox.selectedProperty().addListener(changeListener);
                        setGraphic(checkBox);
                    }else{
                        setGraphic(null);
                    }
                }
            };
        });

Kann mir jemand sagen wie ich es genau anstelle, das beim Klick auf eine Checkbox vorher noch die Zeile gewechselt wird?

Gruß
 
Hi Leute,

habe bis heute leider noch keine Lösung gefunden und die Benutzer behelfen sich damit jeweils die Zeile vorher zu selektieren, allerdings ist aus Gewohnheit oft direkt die Checkbox angeklickt. Kann mir jemand hier weiterhelfen?

LG
 
Schon eine Lösung?
Wie sieht es mit einen RowChangeListener und(oder) MouseClickListener an der Table aus?
Und evtl einen Listener auf die Checkbox (um die Row zu selektieren)?
 
Hi benhaze, danke für die Anwort. Habe in den ChangeListener einfach noch die Zelle übergeben, mir davon den Zeilenindex geben lassen und diesen dann im TableView selektiert. Hat wunderbar geklappt.
 
Zurück