2012-10-03 8 views
17

मैं JavaFX 2 में गैर-पारदर्शी बच्चों के साथ एक पारदर्शी पैनल कैसे कार्यान्वित कर सकता हूं? प्रभाव मैं हासिल करना चाहते हैं उदाहरण ब्लेंडर में मेनू के लिए लागू करने के लिए है:गैर पारदर्शी बच्चों के साथ एक पारदर्शी फलक कैसे कार्यान्वित करें?

enter image description here

मेनू पैनल/खिड़की पारदर्शी है, लेकिन पाठ आइटम पारदर्शी जो एक सुंदर प्रभाव की ओर जाता है नहीं कर रहे हैं।

उत्तर

38

अल्फा घटक के साथ अपने फलक की पृष्ठभूमि को रंग में सेट करें। आप इसके लिए स्टाइलशीट या इनलाइन शैली का उपयोग कर सकते हैं।

उदाहरण के लिए, यदि आपके फलक कांच नामित किया गया था, तो निम्न यह एक गोल, पारदर्शी सियान पृष्ठभूमि दे देंगे:

glass.setStyle("-fx-background-color: rgba(0, 100, 100, 0.5); -fx-background-radius: 10;"); 

तुम भी समान प्रभाव मिश्रणों, stackpanes या के साथ आइटम के समूहों के प्रयोग से कर सकता है opacity स्टैकपैन या समूह के पीछे आइटम के लिए सेट करें।

यहां सीएसएस पृष्ठभूमि विधि का उपयोग कर निष्पादन योग्य उदाहरण है।

import javafx.application.Application; 
import javafx.geometry.Pos; 
import javafx.scene.Scene; 
import javafx.scene.control.*; 
import javafx.scene.image.*; 
import javafx.scene.layout.*; 
import javafx.stage.Stage; 

public class TranslucentPane extends Application { 
    @Override public void start(final Stage stage) throws Exception { 
    final ImageView imageView = new ImageView(
     new Image("https://upload.wikimedia.org/wikipedia/commons/b/b7/Idylls_of_the_King_3.jpg") 
    ); 
    imageView.setFitHeight(300); 
    imageView.setFitWidth(228); 

    final Label label = new Label("The Once\nand\nFuture King"); 
    label.setStyle("-fx-text-fill: goldenrod; -fx-font: italic 20 \"serif\"; -fx-padding: 0 0 20 0; -fx-text-alignment: center"); 

    StackPane glass = new StackPane(); 
    StackPane.setAlignment(label, Pos.BOTTOM_CENTER); 
    glass.getChildren().addAll(label); 
    glass.setStyle("-fx-background-color: rgba(0, 100, 100, 0.5); -fx-background-radius: 10;"); 
    glass.setMaxWidth(imageView.getFitWidth() - 40); 
    glass.setMaxHeight(imageView.getFitHeight() - 40); 

    final StackPane layout = new StackPane(); 
    layout.getChildren().addAll(imageView, glass); 
    layout.setStyle("-fx-background-color: silver; -fx-padding: 10;"); 
    stage.setScene(new Scene(layout)); 
    stage.show(); 
    } 

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

नमूना कार्यक्रम उत्पादन:

once and future

+0

कि ठीक काम करता है। धन्यवाद! – dajood

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