• Wir präsentieren Dir heute ein Stellenangebot für einen Frontend-Entwickler Angular / Java in Braunschweig. Hier geht es zur Jobanzeige

JavaFX TableRow / RowFactory Zeile einfärben

missy72

missy72

Mitglied
Hallo,

ich habe absolute Verständnisprobleme mit der RowFactory und wahrscheinlich mit artverwandten Themen. Ich habe dazu einiges aus dem Netz versucht zu verstehen, oder zumindest in meinem Programm umzusetzen. Beides ohne Erfolg.

Ich habe zwei Tabellen (tableView) mit mehreren Spalten (table. Column). Jetzt klicke ich auf eine beliebige Zelle in einer Zeile der Ausgangstabelle und kopiere die Werte in meine Empfängertabelle. Über die CSS-Datei steuere ich noch über den Befehl .table-row-cell:hover ein, sodass die Zeile über der sich der Mauszeiger befindet einfärbt wird . So weit so gut.

Jetzt möchte ich die ausgewählte Zeile einfärben, damit der User die kopierten Zeilen überschauen kann. Den Index der Zeile habe ich auch noch ausgelesen.

Lambdas sind mir zwar bekannt, habe dafür aber auch noch kein Verständnis.

Als erstes würde mir der Programmcode für das Einfärben der Zeile aus der TableView (dbFahrerListeTV) ausreichen.
Wenn dann noch eine, hoffentlich auch mir, verständliche Erklärung niedergeschrieben wird, wäre ich sehr dankbar.

Schöne Grüße MB.

TableRow / tableFactory:
// Auswahl Teilnehmer und Ansicht Liste Fahrerauswahl

    dbFahrerListeTV.setOnMousePressed(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent event) {
        
            boolean doppelt = false;
        
            if (event.isPrimaryButtonDown() && event.getClickCount() == 1) {
            
                Fahrer choosedFahrer = dbFahrerListeTV.getSelectionModel().getSelectedItem();
            
                int index = dbFahrerListeTV.getSelectionModel().getSelectedIndex();

// Tabellenzeile einfärben               
                    dbFahrerListeTV.setRowFactory( row -> new TableRow<Fahrer>(){
                        @Override
                        public void updateItem(Fahrer item, boolean empty) {
                            super.updateItem(item, empty);
                                        
                                    setStyle("-fx-background-color: yellow;");
                          
                                                  }                   
                    });
                                
                for (Fahrer tempListeFahrer : listeStarterFahrer) {               
                    if (tempListeFahrer == choosedFahrer) {
                        doppelt = true;
                    }               
                }
            
                if (doppelt == false) {
                    listeStarterFahrer.add(choosedFahrer);
                    printListeFahrer = listeStarterFahrer;
                    Collections.reverse(printListeFahrer);        // neue Auswahl an Pos1 anzeigen
                    starterListeTV.setItems(printListeFahrer);
                    counterMod(true);
                }                                     
            }       
        }
    });
 
Zuletzt bearbeitet:
L

lam_tr

Top Contributor
Hi,

ich würde diese Methode nicht bei jedem Klick aufrufen, sondern nur einmal.

Java:
 dbFahrerListeTV.setRowFactory( row -> new TableRow<Fahrer>(){
                        @Override
                        public void updateItem(Fahrer item, boolean empty) {
                            super.updateItem(item, empty);
                                        
                                    setStyle("-fx-background-color: yellow;");
                          
                                                  }                   
                    });

Was ist die Bedingung für das einfärben? Außerdem muss du hier noch behandeln wenn Fahrer == null oder empty ist, ansonsten wird der Hintergrund immer gelb gesetzt.
 
missy72

missy72

Mitglied
Hallo,

ja der Code im Beispiel war jetzt auch nur ein schlechter Lückenfüller.

Ich hatte mir das halt so gedacht, dass in der Methode, in der ich den Fahrer von der eine Tabelle in die andere Übertrage, ein Befehl eingebe wie:
row.setStyle:
row(index).setStyle("-fx-background-color: yellow;");
Den Index habe ich ja. Aber das scheint so nicht zu funktionieren, oder?

MfG MB
 
L

lam_tr

Top Contributor
Hallo,

ja der Code im Beispiel war jetzt auch nur ein schlechter Lückenfüller.

Ich hatte mir das halt so gedacht, dass in der Methode, in der ich den Fahrer von der eine Tabelle in die andere Übertrage, ein Befehl eingebe wie:
row.setStyle:
row(index).setStyle("-fx-background-color: yellow;");
Den Index habe ich ja. Aber das scheint so nicht zu funktionieren, oder?

MfG MB
Du brauchst an der Stelle immer noch eine Bedingung damit es nicht färbt. Sonst geht er Zeile für Zeile durch und setzt den Style.

Was willst du denn genau machen?
 
missy72

missy72

Mitglied
Ich habe mittlerweile auch in einem Video gesehen, dass ich die TableView auch auf Mehrfachauswahl umschalten kann. Dann kann man über die CSS-Datei und den Zusatz select, die Farbe anpassen. Das wäre meine Backup-Lösung, gefällt mir aber nicht so.
 
missy72

missy72

Mitglied
Ja / Nein.
Nur das Problem ist , wenn ich jetzt auf eine andere Zeile,oder in die andere Tabelle klicke.
Ist ja die kopierte Zeile nicht mehr selectiert und nimmt ihre Ursprungsfarbe wieder an.
Der User soll optisch dauerhaft sehen, welche Zeilen er schon kopiert hat.
 
missy72

missy72

Mitglied
Ich habe schon überlegt, ob ich in das Objekt eine zusätliche Fahne/Zeiger setzte. An/-Abgewält.
Dannach würde ich die Bedingung abfragen.
Halte ich bis jetzt, aber für eine schlechte Lösung.
 
L

lam_tr

Top Contributor
Ja / Nein.
Nur das Problem ist , wenn ich jetzt auf eine andere Zeile,oder in die andere Tabelle klicke.
Ist ja die kopierte Zeile nicht mehr selectiert und nimmt ihre Ursprungsfarbe wieder an.
Der User soll optisch dauerhaft sehen, welche Zeilen er schon kopiert hat.
Dann kannst du am besten noch ein booelan in dein Datenmodell. Und überprüfst dann ob Daten schon rüberkopiert wurde wenn ja farbe es einfach gelb.
 
missy72

missy72

Mitglied
Vielen Dank für die Unterhaltung.
Hat mir ein etwas Verständnis für die Methode gegeben.
MfG MB
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Zelle- und die Zeile-Farbenwechsel bei der Selektion in der Tabelle AWT, Swing, JavaFX & SWT 4
M TableView Zeile hinzufügen AWT, Swing, JavaFX & SWT 5
I JLabel neue Zeile AWT, Swing, JavaFX & SWT 4
B JavaFX TableView eine Zeile markieren AWT, Swing, JavaFX & SWT 5
C SWT Breadcrumb Zeile mit entsprechenden Hyperlinks erstellen AWT, Swing, JavaFX & SWT 0
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
Bluedaishi JTextArea gefundene Zeile nach Oben Scrollen AWT, Swing, JavaFX & SWT 13
B Zeile einer Tabelle selektieren AWT, Swing, JavaFX & SWT 1
T Swing Tabelle mit Button - Anzeigefehler nach Zeile entfernen AWT, Swing, JavaFX & SWT 1
T Swing JTable Zeile mit ausgelesenen Werten mit Hilfe von einem Button hinzufügen AWT, Swing, JavaFX & SWT 1
D JLabel bei Aufruf neue Zeile AWT, Swing, JavaFX & SWT 5
C Button Text in JList neue Zeile AWT, Swing, JavaFX & SWT 6
J Swing JTable Zeile nicht auswählbar machen AWT, Swing, JavaFX & SWT 0
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
N AWT Markierte Zeile jList aus mySQL DB löschen AWT, Swing, JavaFX & SWT 2
J JTable Zeile anklicken und neues Frame öffnen AWT, Swing, JavaFX & SWT 4
S JTable nach aktualisierung - neue Zeile nicht "klickbar" AWT, Swing, JavaFX & SWT 0
D Swing Letzte Zeile einer JTable nicht über RowSorter sotieren AWT, Swing, JavaFX & SWT 2
M Text Area 1. Zeile oben AWT, Swing, JavaFX & SWT 4
I ausgewählte Zeile mit Hilfe der Tastatur löschen! AWT, Swing, JavaFX & SWT 3
B jTable ganze Zeile anhand eines Kriterium färben AWT, Swing, JavaFX & SWT 6
T JtextPane Zeile aktualisieren AWT, Swing, JavaFX & SWT 3
M JTextArea Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
P Swing Alle Zeilen einer Spalte (jTable) zusammen zählen und in eine eigene Zeile das Ergebnis schreiben. AWT, Swing, JavaFX & SWT 7
Ollek Swing JTable - Zeile löschen mit AbstractTableModel AWT, Swing, JavaFX & SWT 20
S Swing Kopieren einer vollständigen Zeile einer JTable AWT, Swing, JavaFX & SWT 3
F GroupableTableHeader zeigt nur eine Zeile AWT, Swing, JavaFX & SWT 4
H Unterschiedliche JComboBox je JTable Zeile AWT, Swing, JavaFX & SWT 4
N Swing FileReader Zeile lesen AWT, Swing, JavaFX & SWT 5
C SWT Wie greife ich auf den Inhalt einer bestimmten Zeile zu? (TableViewer) AWT, Swing, JavaFX & SWT 7
F SWT Tabelle Zeile auslesen AWT, Swing, JavaFX & SWT 3
J Swing JTable: Komplette Zeile aber ohne Spalten markieren AWT, Swing, JavaFX & SWT 11
K Zeile verbinden AWT, Swing, JavaFX & SWT 2
G Zeile in JTable durch rechte Maustaste manipulieren AWT, Swing, JavaFX & SWT 4
S Swing AWT-Exception bei JTable mit JComboBox beim Löschen der letzten Zeile AWT, Swing, JavaFX & SWT 3
S Tabelle sortieren, mit Ausnahme der letzten Zeile AWT, Swing, JavaFX & SWT 9
P Aktuelle Zeile in JTextPane farblich hervorheben AWT, Swing, JavaFX & SWT 3
H Swing JComboBox in einer Zeile AWT, Swing, JavaFX & SWT 3
Meldanor Swing JTable - Eine neue Zeile vor einer bestehenden Einfügen AWT, Swing, JavaFX & SWT 2
F Zusätzliche Zeile in der GUI AWT, Swing, JavaFX & SWT 4
H Zeile in DefaultTableModel hinzufügen, ProgressBar AWT, Swing, JavaFX & SWT 4
H Markierte Zeile löschen AbstractTableModel AWT, Swing, JavaFX & SWT 10
R Zeile in JTable anhand von Wert einfärben AWT, Swing, JavaFX & SWT 2
M Jframe wie bekommt man bei den zeile einen header erzeugen AWT, Swing, JavaFX & SWT 2
N JTable, Zeile bleibt immer selektiert.... AWT, Swing, JavaFX & SWT 3
Dit_ JTextArea zu Zeile X scrollen AWT, Swing, JavaFX & SWT 4
M [erledigt] Bestimmte Zeile aus JTextArea löschen AWT, Swing, JavaFX & SWT 3
F Swing JTable: Problem beim zeile löschen AWT, Swing, JavaFX & SWT 3
J Swing JList... mehrere Strings in Zeile AWT, Swing, JavaFX & SWT 8
N Methode zum ermitteln der editierte Zeile/Zelle in jTable AWT, Swing, JavaFX & SWT 8
C Mit SelectionListener herausfinden welche zeile in Jtable angeklickt wurde AWT, Swing, JavaFX & SWT 5
E In JTable neue Zeile mit Tabulator einfügen AWT, Swing, JavaFX & SWT 5
M Text in txt-Datei in letzte Zeile schreiben? AWT, Swing, JavaFX & SWT 14
R JTable Hintergrund der Zeile abhängig von Inhalt einer Zelle verändern AWT, Swing, JavaFX & SWT 3
Developer_X Swing text von bestimmter zeile in jtextarea herausbekommen. AWT, Swing, JavaFX & SWT 12
R JTable Zeile löschen AWT, Swing, JavaFX & SWT 4
T MyTableCellRenderer selektiert nicht die ganze Zeile AWT, Swing, JavaFX & SWT 3
R FlowLayout: 1 Objekt pro Zeile AWT, Swing, JavaFX & SWT 5
D eigenes Tablemodel, Zeile löschen ArrayindexOOB excp AWT, Swing, JavaFX & SWT 4
C JTable mit RowSorter und Drag & Drop: Zeile verschieben AWT, Swing, JavaFX & SWT 4
P JTable zeile einfärben AWT, Swing, JavaFX & SWT 1
N Farbe einer einzelnen Zeile einer JTable ändern AWT, Swing, JavaFX & SWT 10
G Componente Zeile fixieren AWT, Swing, JavaFX & SWT 3
dl85hej bestimmte Zeile anspringen AWT, Swing, JavaFX & SWT 3
S Zeile an eine Tabelle anfügen AWT, Swing, JavaFX & SWT 5
R JTable: Zellen einer Zeile zusammenfassen? AWT, Swing, JavaFX & SWT 3
D JTable um eine Zeile erweitern AWT, Swing, JavaFX & SWT 4
P Tabellen in Java - Zeile anhängen AWT, Swing, JavaFX & SWT 19
GilbertGrape JTable - immer leere Zeile AWT, Swing, JavaFX & SWT 6
A JTable zeile auswählen AWT, Swing, JavaFX & SWT 2
A JXTable jede zweite Zeile einfärben AWT, Swing, JavaFX & SWT 4
S in JTable eine Zeile färben AWT, Swing, JavaFX & SWT 5
T JTable ohne Titel in der ersten Zeile AWT, Swing, JavaFX & SWT 2
K leere Zeile zu JTable zufügen AWT, Swing, JavaFX & SWT 2
T jtabel - Zeile selktierbar aber nicht editierbar AWT, Swing, JavaFX & SWT 2
E JTable letzte Zeile in Fett schrift? AWT, Swing, JavaFX & SWT 3
O JTable + event wenn andere Zeile selektiert ist AWT, Swing, JavaFX & SWT 5
J jTextarea Anzahl Zeichen in einer Zeile begrenzen AWT, Swing, JavaFX & SWT 2
O JTable Zeile zuweisen und weiter mit dem Button AWT, Swing, JavaFX & SWT 2
M JTable & Problem, das nicht die komplette Zeile gefärbt AWT, Swing, JavaFX & SWT 6
G JTable erste zeile fixieren wie in excel? AWT, Swing, JavaFX & SWT 3
Z JTable automatisch zu einer Zeile scrollen AWT, Swing, JavaFX & SWT 4
lolkind eine Zeile und Tabelle ist Rechtsbündig? AWT, Swing, JavaFX & SWT 3
G JTable Zeile zurückgeben AWT, Swing, JavaFX & SWT 4
D Herausfinden auf welche Zeile in einer JTable geklickt wurde AWT, Swing, JavaFX & SWT 2
F JTextPane aktive Zeile AWT, Swing, JavaFX & SWT 2
S JTable: Zeile unter MouseCursor farblich hervorheben AWT, Swing, JavaFX & SWT 2
N Trotz richtiger ListSelectionMode kann ich keine Zeile sel? AWT, Swing, JavaFX & SWT 4
N Die Zeile einer JTable verändert beim klicken ihre Farbe? AWT, Swing, JavaFX & SWT 7
S Eine Zeile zu einer JTable hinzufügen wo Zelle selektiert is AWT, Swing, JavaFX & SWT 4
A Prob:Tabelle bei Zellensprung: Letzte zeile doppelt sichtbar AWT, Swing, JavaFX & SWT 7
G JTable Zeile mit Farbe füllen AWT, Swing, JavaFX & SWT 2
G JTable komplette Zeile auf deaktiv setzen AWT, Swing, JavaFX & SWT 2
B JTable erste Zeile aktiv AWT, Swing, JavaFX & SWT 6
F AbstractTableModel + Vector - Wie Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
Saxony JTextPane - letzte Zeile löschen AWT, Swing, JavaFX & SWT 4
A Zeile in JTable einfügen/löschen- Tutorial gesucht AWT, Swing, JavaFX & SWT 9
F JTree: Elemente über ganze Zeile rendern AWT, Swing, JavaFX & SWT 6
A jtextarea -> ganze zeile auswählen AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Anzeige

Neue Themen


Oben