Zellen in JavaFx einfärben funktioniert nicht

jimb0p

Mitglied
Hallo Zusammen,

ich möchte in einem TableView (in einem ScrollPane) in einer Spalte eine Zelle rot färben wenn der Wert > 0 ist. Leider funktioniert dies nur wenn ich nicht scrolle. Sobald ich scrolle sind die Formatierungen fehlerhaft. Hier ist meine CellFactory:

Java:
clmnSale.setCellFactory(column -> {
			return new TableCell<Artikel, Number>(){
				@Override
				protected void updateItem(Number item, boolean empty){
					super.updateItem(item, empty);
					if(item != null){
						float price = (float) item;
						if(price > 0.0f){
							setText(String.valueOf(item));
							setStyle("-fx-background-color: red");
						}else{
							setText(String.valueOf(item));
						}
					}
				}
			};
		});
 
Ich musste einfach den Style entfernen von der vorherigen Zellen:
Java:
final String CSS_SALE = "sale";
		
		clmnSale.setCellFactory(column -> {
			return new TableCell<Artikel, Number>(){
				@Override
				protected void updateItem(Number item, boolean empty){
					super.updateItem(item, empty);
					getStyleClass().removeAll(CSS_SALE);
					if(item != null){
						float price = (float) item;
						if(price > 0.0f){
							setText(String.valueOf(item));
							getStyleClass().add("sale");
						}else{
							setText(String.valueOf(item));
						}
					}
				}
			};
		});

habe nun auch direkt eine .css Datei eingebunden
 

Zurück
Oben