JavaFX

2013-06-10 17 views
11

में प्रतीक के साथ टैब बनाने के लिए कैसे मैं JavaFX के साथ Firefox विन्यास पैनल के समान माउस के साथ टैब पैनल बनाना चाहते हैं:JavaFX

enter image description here

कोई उदाहरण जो मैं कैसे लागू करने के लिए देखने के लिए उपयोग कर सकते हैं है इस?

+0

setGraphic (नोड yourNode) टैब वर्ग के अपने टैब के लिए किसी भी नोड जोड़ने के लिए एक अच्छा तरीका है। लेकिन यदि आप अपना एप्लिकेशन छवि में दिखाए गए जैसा दिखाना चाहते हैं, तो Tabpane (My Suggestion) के बजाय टूलबार के साथ इसे आज़माएं। –

उत्तर

15

जावाएफएक्स में कई अन्य तत्वों की तरह टैब, setGraphic(Node value) नामक एक विधि है, जिसमें आप कोई जावाएफएक्स नोड डाल सकते हैं। उदाहरण:

import javafx.application.Application; 
import javafx.geometry.Pos; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.control.Tab; 
import javafx.scene.control.TabPane; 
import javafx.scene.layout.BorderPane; 
import javafx.scene.layout.HBox; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.stage.Stage; 

public class TabPaneTest extends Application { 
    public static void main(String[] args) { 
    Application.launch(args); 
    } 
    @Override 
    public void start(Stage primaryStage) { 
    primaryStage.setTitle("Tabs"); 
    Group root = new Group(); 
    Scene scene = new Scene(root, 400, 250, Color.WHITE); 
    TabPane tabPane = new TabPane(); 
    BorderPane borderPane = new BorderPane(); 
    for (int i = 0; i < 5; i++) { 
     Tab tab = new Tab(); 
     tab.setGraphic(new Circle(0, 0, 10)); 
     HBox hbox = new HBox(); 
     hbox.getChildren().add(new Label("Tab" + i)); 
     hbox.setAlignment(Pos.CENTER); 
     tab.setContent(hbox); 
     tabPane.getTabs().add(tab); 
    } 
    // bind to take available space 
    borderPane.prefHeightProperty().bind(scene.heightProperty()); 
    borderPane.prefWidthProperty().bind(scene.widthProperty()); 

    borderPane.setCenter(tabPane); 
    root.getChildren().add(borderPane); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
    } 
} 

परिणाम:

tabs in a TabPane

3

मैं अपने एक पुराने धागा पता है, लेकिन मैं did not कहीं भी एक सीधा उत्तर नहीं मिलता। तो मैंने इसे कुछ पोस्ट करने के बारे में सोचा था कि कुछ इसके लिए खोज करने में मददगार होगा।

यह वही है जो मैंने फ़ायरफ़ॉक्स प्राथमिकता स्क्रीन जैसे टैब प्राप्त करने के लिए किया था।

सेटग्राफिक्स के साथ टैब में छवि जोड़ें और एप्लिकेशन सीएसएस फ़ाइल में निम्न कोड जोड़ें। मेरी छवि का आकार 48x48 था। तो मैं 70.

.tab-label { 
    -fx-content-display: top; 
} 
.tab-pane { 
    -fx-tab-min-height: 70; 
    -fx-tab-max-height: 70; 
} 
+0

संदर्भ के लिए, यहां fxml सेट करने के लिए एक उदाहरण है। http://stackoverflow.com/a/9930822/652696 – dejuknow

0

छवि url से सीधे छवि कैसे जोड़ूं के रूप में ऊंचाई के लिए चला गया:

  Tab tab = new Tab(); 
      tab.setGraphic(buildImage("patch/to/image"); 

    // Helper method to create image from image patch 
    private static ImageView buildImage(String imgPatch) { 
      Image i = new Image(imgPatch); 
      ImageView imageView = new ImageView(); 
      //You can set width and height 
      imageView.setFitHeight(16); 
      imageView.setFitWidth(16); 
      imageView.setImage(i); 
      return imageView; 
     }