可以使用手风琴(accordion)控件对标题窗格进行分组。
import javafx.application.Application
import javafx.scene.Group
import javafx.scene.Scene
import javafx.scene.control.Accordion
import javafx.scene.control.Button
import javafx.scene.control.TitledPane
import javafx.stage.Stage
public class Main extends Application {
public static void main(String[] args) {
Application.launch(args)
}
@Override
public void start(Stage primaryStage) {
Group g = new Group()
Scene scene = new Scene(g, 550, 250)
TitledPane t1 = new TitledPane("T1", new Button("B1"))
TitledPane t2 = new TitledPane("T2", new Button("B2"))
TitledPane t3 = new TitledPane("T3", new Button("B3"))
Accordion accordion = new Accordion()
accordion.getPanes().addAll(t1, t2, t3)
// from ww W. y I I ba I . c O M
g.getChildren().add(accordion)
primaryStage.setScene(scene)
primaryStage.show()
}
}
上面的代码生成以下结果。
手风琴事件
import javafx.application.Application
import javafx.beans.value.ObservableValue
import javafx.scene.Group
import javafx.scene.Scene
import javafx.scene.control.Accordion
import javafx.scene.control.Button
import javafx.scene.control.TitledPane
import javafx.stage.Stage
public class Main extends Application {
public static void main(String[] args) {
Application.launch(args)
}
@Override
public void start(Stage primaryStage) {
Group g = new Group()
Scene scene = new Scene(g, 550, 250)
TitledPane t1 = new TitledPane("T1", new Button("B1"))
TitledPane t2 = new TitledPane("T2", new Button("B2"))
TitledPane t3 = new TitledPane("T3", new Button("B3"))
Accordion accordion = new Accordion()
accordion.getPanes().addAll(t1, t2, t3)
accordion.expandedPaneProperty()
.addListener((ObservableValue<? extends TitledPane> ov, TitledPane old_val, TitledPane new_val) -> {
if (new_val != null) {
System.out.println(accordion.getExpandedPane().getText())
}
})
g.getChildren().add(accordion)
// copyright wW W.YI I BA i.c O m
primaryStage.setScene(scene)
primaryStage.show()
}
}
当在手风琴中打开标题窗格时,手风琴的展开窗格属性会更改。
上面的代码生成以下结果。