JavaFX教程 – JavaFX TitledPane 标题窗格是具有标题的面板,窗格可以打开和关闭。我们可以添加Node(如UI控件或图像)和一组元素到窗格。 import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.CheckBox; import javafx.scene.control.TitledPane; import javafx.scene.layout.HBox; import javafx.stage.Stage; //from w w w . j a v a 2 s . c o m public class Main extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) { Scene scene = new Scene(new Group(), 350, 250); TitledPane titledPane = new TitledPane("My Title", new CheckBox("OK")); HBox hbox = new HBox(10); hbox.setPadding(new Insets(20, 0, 0, 20)); hbox.getChildren().setAll(titledPane); Group root = (Group) scene.getRoot(); root.getChildren().add(hbox); stage.setScene(scene); stage.show(); } } 上面的代码生成以下结果。 创建标题窗格 要创建一个TitledPane控件,请调用其构造函数。 以下代码使用TitledPane的双参数构造函数。它将标题窗格命名为“我的窗格”,并用一个Button控件填充窗格。 TitledPane tp = new TitledPane("My Pane", new Button("Button")); 接下来的几行做了与上面的代码相同的事情,而没有使用构造函数带参数。 它创建一个带有默认空构造函数的TittedPane并设置标题并进行内容控制。 TitledPane tp = new TitledPane(); tp.setText("My Titled Pane"); tp.setContent(new Button("Button")); 以下代码使用GridPane在TitledPane中布局控件。 TitledPane gridTitlePane...
JavaFX教程 – JavaFX手风琴 可以使用手风琴控件对标题窗格进行分组。 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; //from w w w .j ava 2 s .com 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); 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; /* w w w . ja va 2 s...
JSF教程 – JSF管理Bean JSF Managed Bean是使用JSF注册的常规Java Bean类。 JSF Managed Bean是使用JSF注册的常规Java Bean类。… JSF管理的bean作为UI组件的模型。 它存储使用的数据通过JSF xhtml页面。 在JSF框架的帮助下,Managed Bean可以从JSF页面访问。 在JSF 1.2中,我们必须在JSF配置文件中注册一个托管bean例如faces-config.xml。 从JSF 2.0,可以使用注释注册托管bean。 使用XML配置 以下代码显示如何注册JSF受管Bean <managed-bean> <managed-bean-name>helloWorld</managed-bean-name> <managed-bean-class>com.w3cschool.test.HelloWorld</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>message</managed-bean-name> <managed-bean-class>com.w3cschool.test.Message</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> 使用@ManagedBean注释 以下代码显示了如何使用注释注册JSF受管Bean。 @ManagedBean(name = "helloWorld", eager = true) @RequestScoped public class HelloWorld { @ManagedProperty(value="#{message}") private Message message; ... } @ManagedBean 将bean标记为在name属性中指定的名称的托管bean。 如果未指定name属性,则指定受管bean名称将默认为简单类名称,第一个字母为lowercased。 在我们的情况下,它会是helloWorld。 如果eager设置为“true”,那么在请求bean之前创建managed bean。 “lazy”初始化被使用在bean将被创建只有当它被请求。 使用@ManagedBean注释… 范围注释设置受管bean的范围。 如果未指定scope,那么bean将默认为请求作用域。 我们可以将JSF bean范围设置为以下列表。 @RequestScoped bean lives as long as the HTTP request-response lives. It get created upon a HTTP request and get destroyed when the HTTP response associated with the HTTP request is finished. @NoneScoped bean stays as long as a single Expression Language(EL) evaluation. It get created upon an EL evaluation and get destroyed after the EL evaluation. @ViewScoped...