2012-03-16 31 views

उत्तर

27

तरीकों में से एक इस तरह हो सकता है:

1) नाम "style.css" के साथ एक सीएसएस फ़ाइल बनाएं और उसे में एक आईडी चयनकर्ता को परिभाषित:

#pane{ 
    -fx-background-image: url("background_image.jpg"); 
    -fx-background-repeat: stretch; 
    -fx-background-size: 900 506; 
    -fx-background-position: center center; 
    -fx-effect: dropshadow(three-pass-box, black, 30, 0.5, 0, 0); 
} 

2) सीएसएस में परिभाषित मूल्य के साथ दृश्य में सबसे ऊपर नियंत्रण (या किसी भी नियंत्रण) की आईडी सेट करें और इस सीएसएस फ़ाइल को दृश्य में लोड करें:

public class Test extends Application { 

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

    @Override 
    public void start(Stage primaryStage) { 
     StackPane root = new StackPane(); 
     root.setId("pane"); 
     Scene scene = new Scene(root, 300, 250); 
     scene.getStylesheets().addAll(this.getClass().getResource("style.css").toExternalForm()); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 
} 
के बारे में JavaFX सीएसएस स्टाइलिंग इस guide का उल्लेख अधिक जानकारी के लिए

<StackPane id="pane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml" fx:controller="demo.Sample"> 
    <children> 
    </children> 
</StackPane> 

: 91,363,210

तुम भी एक FXML फ़ाइल में नियंत्रित करने के लिए एक आईडी दे सकते हैं।

+0

मैं एक प्रश्न पोस्ट पहले कृपया यहाँ http://stackoverflow.com/questions/9736393/javafx-2 लिंक मदद -नॉट-रीसाइजिंग-यूई-कंट्रोल-आधारित-ऑन-विंडो-साइज – John

+0

क्या मैं किसी अन्य फ़ंक्शन से दृश्य पृष्ठभूमि बदल सकता हूं, इसके अलावा शून्य शुरू – Ossama

+0

@ ओसामा हां आप कर सकते हैं। दो अलग-अलग सीएसएस चयनकर्ताओं को परिभाषित करें (दो अलग-अलग पृष्ठभूमि प्रस्तुतियां) और कुछ विधि में नोड की आईडी को वांछित के साथ बदलें। –

10

आप .root वर्ग का उपयोग कर दृश्य के लिए सीधे शैली बदल सकते हैं:

.root { 
    -fx-background-image: url("https://www.google.com/images/srpr/logo3w.png"); 
} 

सीएसएस को यह जोड़ें और के रूप में "Uluk Biy" अपने जवाब में वर्णित इसे लोड।

+0

ओह! मैं छवि को पूरे दृश्य को कैसे भर सकता हूं? यह बाईं ओर और शीर्ष पर सफेद रिक्त स्थान छोड़ रहा है। – John

+0

'-एफएक्स-पृष्ठभूमि-दोहराना: खिंचाव; ' –

+0

यह अभी भी अंतरिक्ष छोड़ रहा है। दृश्य की जड़ एक ग्रिडपेन है और मैं दृश्य पर ग्रिडपेन केंद्रित कर रहा हूं। मैं पृष्ठभूमि छवि को केंद्रित करने से कैसे रोक सकता हूं? – John

19

मैं जानता हूँ कि यह एक पुराने सवाल

है लेकिन मामले में आप इसे प्रोग्राम के रूप में करते हैं या जावा तरीका

छवि पृष्ठभूमि के लिए करना चाहते हैं; आप पेंट के लिए BackgroundImage वर्ग

BackgroundImage myBI= new BackgroundImage(new Image("my url",32,32,false,true), 
     BackgroundRepeat.REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.DEFAULT, 
      BackgroundSize.DEFAULT); 
//then you set to your node 
myContainer.setBackground(new Background(myBI)); 

का उपयोग करें या पृष्ठभूमि भरें कर सकते हैं; आप उपयोग कर सकते BackgroundFill वर्ग

BackgroundFill myBF = new BackgroundFill(Color.BLUEVIOLET, new CornerRadii(1), 
     new Insets(0.0,0.0,0.0,0.0));// or null for the padding 
//then you set to your node or container or layout 
myContainer.setBackground(new Background(myBF)); 

अपने जावा जिंदा & & अपने सीएसएस मृत रखता है ..

संबंधित मुद्दे