मैं एक दृश्य की पृष्ठभूमि छवि कैसे सेट कर सकता हूं?जावाएफएक्स दृश्य पृष्ठभूमि छवि कैसे सेट करें
उत्तर
तरीकों में से एक इस तरह हो सकता है:
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 फ़ाइल में नियंत्रित करने के लिए एक आईडी दे सकते हैं।
आप .root
वर्ग का उपयोग कर दृश्य के लिए सीधे शैली बदल सकते हैं:
.root {
-fx-background-image: url("https://www.google.com/images/srpr/logo3w.png");
}
सीएसएस को यह जोड़ें और के रूप में "Uluk Biy" अपने जवाब में वर्णित इसे लोड।
ओह! मैं छवि को पूरे दृश्य को कैसे भर सकता हूं? यह बाईं ओर और शीर्ष पर सफेद रिक्त स्थान छोड़ रहा है। – John
'-एफएक्स-पृष्ठभूमि-दोहराना: खिंचाव; ' –
यह अभी भी अंतरिक्ष छोड़ रहा है। दृश्य की जड़ एक ग्रिडपेन है और मैं दृश्य पर ग्रिडपेन केंद्रित कर रहा हूं। मैं पृष्ठभूमि छवि को केंद्रित करने से कैसे रोक सकता हूं? – John
मैं जानता हूँ कि यह एक पुराने सवाल
है लेकिन मामले में आप इसे प्रोग्राम के रूप में करते हैं या जावा तरीका
छवि पृष्ठभूमि के लिए करना चाहते हैं; आप पेंट के लिए 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));
अपने जावा जिंदा & & अपने सीएसएस मृत रखता है ..
मैं एक प्रश्न पोस्ट पहले कृपया यहाँ http://stackoverflow.com/questions/9736393/javafx-2 लिंक मदद -नॉट-रीसाइजिंग-यूई-कंट्रोल-आधारित-ऑन-विंडो-साइज – John
क्या मैं किसी अन्य फ़ंक्शन से दृश्य पृष्ठभूमि बदल सकता हूं, इसके अलावा शून्य शुरू – Ossama
@ ओसामा हां आप कर सकते हैं। दो अलग-अलग सीएसएस चयनकर्ताओं को परिभाषित करें (दो अलग-अलग पृष्ठभूमि प्रस्तुतियां) और कुछ विधि में नोड की आईडी को वांछित के साथ बदलें। –