我想用
JavaFX创建与Firefox配置面板类似的图标的制表符面板:
有没有可以用来看看如何实现的例子?
解决方法
标签与JavaFX中的许多其他元素一样,都有一个名为setGraphic(Node value)的方法,您可以在其中放置任何JavaFX节点.例:
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,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(); } }
结果: