前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaFx-Button

JavaFx-Button

作者头像
shengjk1
发布2021-03-02 14:56:10
4.9K0
发布2021-03-02 14:56:10
举报
文章被收录于专栏:码字搬砖码字搬砖
效果
在这里插入图片描述
在这里插入图片描述

#### 代码

代码语言:javascript
复制
public class ButtonSample extends Application {

	private static final Color color = Color.web("#464646");
	Button     button3 = new Button("Decline");
	DropShadow shadow  = new DropShadow();
	Label      label   = new Label();


	public static void main(String[] args) {
		launch(args);
	}

	@Override
	public void start(Stage stage) {
		Scene scene = new Scene(new Group());
		stage.setTitle("Button Sample");
		stage.setWidth(300);
		stage.setHeight(190);
		scene.getStylesheets().add(getClass().getResource("ControlStyle.css").toExternalForm());

		label.setFont(Font.font("Times New Roman", 22));
		label.setTextFill(color);

		Image imageDecline = new Image(getClass().getResourceAsStream("not.png"));
		Image imageAccept = new Image(getClass().getResourceAsStream("ok.png"));

		VBox vbox = new VBox();
		vbox.setLayoutX(20);
		vbox.setLayoutY(20);
		//HBox即水平的布局,将组件按水平方向依次排列
		//VBox中的V是Vertical的首字母,意为垂直的。VBox即垂直的布局,将组件按竖直方向依次排列。
		HBox hbox1 = new HBox();
		HBox hbox2 = new HBox();

		//当为按钮同时设置了文本和图形内容时,可以使用 setGraphicTextGap 方法来设置它们之间的间距。
		Button button1 = new Button("Accept", new ImageView(imageAccept));
		//为 Button 设置样式
		button1.getStyleClass().add("button1");
//		button1.setCancelButton(true);
//		button1.setDisable(true);

		button1.setOnAction((ActionEvent e) -> {
			label.setText("Accepted");
			System.out.println("====");
		});


		Button button2 = new Button("Accept");
		button2.setOnAction((ActionEvent e) -> {
			label.setText("Accepted");
		});

		button3.setOnAction((ActionEvent e) -> {
			label.setText("Declined");
		});

		button3.addEventHandler(MouseEvent.MOUSE_ENTERED, (MouseEvent e) -> {
			// 添加阴影效果
			button3.setEffect(shadow);
		});

		button3.addEventHandler(MouseEvent.MOUSE_EXITED, (MouseEvent e) -> {
			button3.setEffect(null);
		});


		hbox1.getChildren().add(button2);
		hbox1.getChildren().add(button3);
		hbox1.getChildren().add(label);
		//各个子组件间的距离
		hbox1.setSpacing(10);
		hbox1.setAlignment(Pos.BOTTOM_CENTER);

		Button button4 = new Button();
		button4.setGraphic(new ImageView(imageAccept));
		button4.setOnAction((ActionEvent e) -> {
			label.setText("Accepted");
		});


		Button button5 = new Button();
		button5.setGraphic(new ImageView(imageDecline));
		button5.setOnAction((ActionEvent e) -> {
			label.setText("Declined");
		});

		hbox2.getChildren().add(button4);
		hbox2.getChildren().add(button5);
		hbox2.setSpacing(25);

		vbox.getChildren().add(button1);
		vbox.getChildren().add(hbox1);
		vbox.getChildren().add(hbox2);
		vbox.setSpacing(10);
		((Group) scene.getRoot()).getChildren().add(vbox);

		stage.setScene(scene);
		stage.show();
	}
}
相关资源

ControlStyle.css

.button1 { -fx-font: 22 arial; -fx-base: #b6e7c9; }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果
  • 相关资源
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com