javafX初探(开关按钮)
来源:互联网 发布:淘宝花溪是卖的正品吗 编辑:程序博客网 时间:2024/05/20 20:03
本节我们介绍开关按钮,我们会实现一个如下图所示的实例:
创建一个开关按钮
//A toggle button without any caption or iconToggleButton tb1 = new ToggleButton();//A toggle button with a text captionToggleButton tb2 = new ToggleButton("Press me");//A toggle button with a text caption and an iconImage image = new Image(getClass().getResourceAsStream("icon.png"));ToggleButton tb3 = new ToggleButton ("Press me", new ImageView(image));
此类也是Labeled的扩展类,所以也拥有Labeled的方法。
添加到组
代码如下:
final ToggleGroup group = new ToggleGroup();ToggleButton tb1 = new ToggleButton("Minor");tb1.setToggleGroup(group);tb1.setSelected(true);ToggleButton tb2 = new ToggleButton("Major");tb2.setToggleGroup(group);ToggleButton tb3 = new ToggleButton("Critical");tb3.setToggleGroup(group);
添加行为:
代码如下:
tb1.setUserData(Color.LIGHTGREEN);tb2.setUserData(Color.LIGHTBLUE);tb3.setUserData(Color.SALMON);Rectangle rect = new Rectangle();rect.setHeight(50);rect.setFill(Color.WHITE);rect.setStroke(Color.DARKGRAY);rect.setStrokeWidth(2);rect.setArcHeight(10);rect.setArcWidth(10);final ToggleGroup group = new ToggleGroup();group.selectedToggleProperty().addListener (ObservableValue<? extends Toggle> ov, Toggle toggle, Toggle new_toggle) -> { if (new_toggle == null) rect.setFill(Color.WHITE); else rect.setFill((Color) group.getSelectedToggle().getUserData());});rect.setWidth(hbox.getWidth());
如下图所示:
添加样式
.toggle-button1{ -fx-base: lightgreen; } .toggle-button2{ -fx-base: lightblue; } .toggle-button3{ -fx-base: salmon; }
tb1.getStyleClass().add("toggle-button1");tb2.getStyleClass().add("toggle-button2");tb3.getStyleClass().add("toggle-button3");
运行如下图所示:
全部java代码
package com.chu.button;import javafx.application.Application;import javafx.geometry.Pos;import javafx.scene.Scene;import javafx.scene.control.ToggleButton;import javafx.scene.control.ToggleGroup;import javafx.scene.layout.GridPane;import javafx.scene.paint.Color;import javafx.scene.shape.Rectangle;import javafx.stage.Stage;public class ToggleButtonTest extends Application {@Overridepublic void start(Stage primaryStage) throws Exception {GridPane gp = new GridPane();gp.setAlignment(Pos.CENTER);final ToggleGroup group = new ToggleGroup();ToggleButton tb1 = new ToggleButton("Minor");tb1.setToggleGroup(group);tb1.setSelected(true);ToggleButton tb2 = new ToggleButton("Major");tb2.setToggleGroup(group);ToggleButton tb3 = new ToggleButton("Critical");tb3.setToggleGroup(group);tb1.getStyleClass().add("toggle-button1");tb2.getStyleClass().add("toggle-button2");tb3.getStyleClass().add("toggle-button3");gp.add(tb1, 0, 0);gp.add(tb2, 1, 0);gp.add(tb3, 2, 0);tb1.setUserData(Color.LIGHTGREEN);tb2.setUserData(Color.LIGHTBLUE);tb3.setUserData(Color.SALMON);Rectangle rect = new Rectangle();rect.setHeight(50);rect.setFill(Color.WHITE);rect.setStroke(Color.DARKGRAY);rect.setStrokeWidth(2);rect.setArcHeight(10);rect.setArcWidth(10);group.selectedToggleProperty().addListener((v, e, t) -> {if (t == null) {rect.setFill(Color.WHITE);} else {rect.setFill((Color) group.getSelectedToggle().getUserData());}});rect.setWidth(155);gp.add(rect, 0, 1,3,1);Scene scene = new Scene(gp, 500, 300);scene.getStylesheets().add(ToggleButtonTest.class.getResource("button.css").toExternalForm());primaryStage.setScene(scene);primaryStage.show();}public static void main(String[] args) {launch(args);}}
0 0
- javafX初探(开关按钮)
- javafX初探(按钮)
- javafX初探(单选按钮)
- javaFX初探(部署)
- javaFX初探(Shape3D)
- javaFX初探(Camera)
- javaFX初探(灯光)
- javaFX初探(材料)
- javaFX初探(选择)
- javaFX初探(Label)
- javafX初探(多选框)
- JavaFX初探(菜单)
- javaFX初探(子场景)
- javafX初探(选择框)
- javafX初探(文本域)
- javafX初探(密码域)
- javafX初探(滚动条)
- JavaFx初探(颜色选择器)
- BIEE dashboard返回按钮
- 数字0到9的奇妙变幻(拉丁方)
- 批量输入<li></li>的简便方法~~~~·
- 基于xmpp openfire smack开发之smack类库介绍和使用[2]
- 数字0到9的奇妙变幻(填表格)
- javafX初探(开关按钮)
- poj 3440 Coin Toss (概率)
- 232 - Crossword Answers
- MongoDB如何存储数据
- SSL 握手协议详解
- ggd
- JAVA byte数组转 大端int, float
- 无恢复光盘迁移IBM ThankPad43一键恢复
- block使用注意