Probleem met achtergrondkleur in JavaFX 8

Het lijkt erop dat er een probleem is met het instellen van achtergrondkleuren voor panelen in JavaFX 8.

Ik heb het onderstaande geprobeerd, maar geen van hen heeft de juiste achtergrondkleuren ingesteld.

VBox panel = new VBox();
panel.setAlignment(Pos.TOP_LEFT);
// None of the below work
panel.setStyle("-fx-background-color: #FFFFFF;");
panel.setBackground(new Background(new BackgroundFill(Color.WHITE, CornerRadii.EMPTY, Insets.EMPTY)));

Is er iets mis met de manier waarop ik de achtergrondkleur instel? Dit werkte vroeger met eerdere versies van JavaFX 2.2.

Bedankt.


Antwoord 1, autoriteit 100%

Beide werken voor mij. Misschien een compleet voorbeeld posten?

import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class PaneBackgroundTest extends Application {
    @Override
    public void start(Stage primaryStage) {
        BorderPane root = new BorderPane();
        VBox vbox = new VBox();
        root.setCenter(vbox);
        ToggleButton toggle = new ToggleButton("Toggle color");
        HBox controls = new HBox(5, toggle);
        controls.setAlignment(Pos.CENTER);
        root.setBottom(controls);
//        vbox.styleProperty().bind(Bindings.when(toggle.selectedProperty())
//                .then("-fx-background-color: cornflowerblue;")
//                .otherwise("-fx-background-color: white;"));
        vbox.backgroundProperty().bind(Bindings.when(toggle.selectedProperty())
                .then(new Background(new BackgroundFill(Color.CORNFLOWERBLUE, CornerRadii.EMPTY, Insets.EMPTY)))
                .otherwise(new Background(new BackgroundFill(Color.WHITE, CornerRadii.EMPTY, Insets.EMPTY))));
        Scene scene = new Scene(root, 300, 250);
        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

Antwoord 2, Autoriteit 120%

panel.setStyle("-fx-background-color: #FFFFFF;");

Antwoord 3, Autoriteit 30%

Probeer deze in uw CSS-document,

-fx-background-color : #ffaadd;

of

-fx-base : #ffaadd; 

Ook kunt u de achtergrondkleur rechtstreeks instellen op uw object met deze code.

yourPane.setBackground(new Background(new BackgroundFill(Color.DARKGREEN, CornerRadii.EMPTY, Insets.EMPTY)));

Antwoord 4

Dit codefragment kan ook direct

worden geïmplementeerd

yourPane.setBackground(new Background(new BackgroundFill(Color.LIGHTBLUE, CornerRadii.EMPTY, Insets.EMPTY)));

Other episodes