2017-02-08 27 views
3

我正在開發一個項目,嘗試從圖片中找到最常見的顏色。我的代碼找到這個作品,但我想設置我的場景的背景顏色爲我發現的RGB顏色。JavaFx如何在CSS中使用java生成的RGB顏色

我知道如何使用CSS設置我的場景的背景顏色,但我不知道如何在那裏使用我的方法。如果不可能,還有另外一種方法可以設置背景顏色嗎?

CSS代碼現在:

.root{ 
-fx-background-color: rgb(50,50,50); 
-fx-font-size: 11pt; 
} 

JavaFX的代碼現在:

Stage window; 

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

@Override 
public void start(Stage primaryStage) throws Exception { 
    ColorFinder finder= new CollorFinder("/imgs/picture.jpg"); 
    int r = finder.rood(); 
    int g = finder.groen();  //calling my method and setting r g & b 
    int b = finder.blauw(); 

    window = primaryStage; 
    window.setTitle("Color"); 

    Label text = new Label("Most popular color:"); 
    Label rgb = new Label("rgb("+r+","+g+","+b + ")"); 



    VBox layout = new VBox(20); 
    layout.getChildren().addAll(text,rgb); 
    layout.setAlignment(Pos.CENTER); 

    Scene scene = new Scene(layout, 300,200); 
    String css = gui.class.getResource("styles.css").toExternalForm(); 
    scene.getStylesheets().add(css); 
    window.setScene(scene); 
    window.show(); 
} 
} 

我想在CSS做,但不可能:

ColorFinder finder= new CollorFinder("/imgs/picture.jpg"); 
    int r = finder.rood(); 
    int g = finder.groen(); 
    int b = finder 
.root{ 
    -fx-background-color: rgb(r,g,b); 
    -fx-font-size: 11pt; 
} 

回答

1

有兩種方法:

  1. 內嵌式方法setStyle(String style)

    layout.setStyle("-fx-background-color: rgb(" + r + "," + g + ", " + b + ");"); 
    

    r, g, b值的範圍 - >(0 - 255)

  2. 方法setBackground(Background value)

    layout.setBackground(new Background(new BackgroundFill(Color.rgb(r, g, b), CornerRadii.EMPTY, Insets.EMPTY))); 
    

    r, g, b值的範圍 - >(0 - 255 )

+0

謝謝你soooo!有用! – jdlChicory

+1

沒問題。您現在可以將答案標記爲正確。 – MBec