JavaFx-group及鼠标和键盘点击

第八课-Group容器的使用

public void start(Stage primaryStage) throws Exception {
		Button b1 = new Button("按钮1");//创建按钮
		Button b2 = new Button("按钮2");
		Button b3 = new Button("按钮3");
		
		b1.setPrefHeight(50);//设置按钮大小
		b1.setPrefWidth(120);
		
		b1.setLayoutX(0);//设置按钮位置
		b1.setLayoutY(20);
		
		b2.setLayoutX(200);
		b2.setLayoutY(20);
		
		b3.setLayoutX(400);
		b3.setLayoutY(20);
		
		Group group = new Group();
		//group.setOpacity(0.5);//设置group的属性,那么他的子组件也会做相应改变
		group.getChildren().addAll(b1, b2, b3);//将按钮添加入容器中
		//group.getChildren().clear();//清除组件
		//group.getChildren().remove(0);//移除第一个按钮
		
		//System.out.println(group.contains(0,20));//判断(0,0)点是否有组件,只能检测左上角
		
		/*Object[] obj = group.getChildren().toArray();//可以将group中的东西拿出来,做相应改变
		System.out.println(obj.length);
		for(Object o:obj) {
			Button bu = (Button)o;
			bu.setPrefHeight(300);
			bu.setPrefWidth(200);
		}*/
		Scene scene = new Scene(group);
		primaryStage.setScene(scene);
		primaryStage.setTitle("JavaFX");
		primaryStage.setHeight(800);
		primaryStage.setWidth(800);
		primaryStage.show();
	}

设置按钮的样式以及点击事件

public void start(Stage primaryStage) {
		
		Button b1 = new Button("按钮1");
		Button b2 = new Button("按钮2");
		b1.setLayoutX(60);//设置布局位置
		b1.setLayoutY(60);
		b1.setPrefHeight(80);//设置按钮大小
		b1.setPrefWidth(140);
		b1.setFont(Font.font("", 10));//设置按钮中的字体和大小
		b1.setTextFill(Paint.valueOf("#CD0000"));//设置按钮中字体颜色
		
		
		//设置按钮颜色形状,Insets:边框偏离四边的距离,也可以指定四个值,分别为上右下左
		BackgroundFill bgf = new BackgroundFill(Paint.valueOf("#8FBC8F"), new CornerRadii(20), new Insets(2));
		Background bg = new Background(bgf);
		b1.setBackground(bg);
		
		
		//设置按钮边框,CornerRadii:边角弧度,BorderWidths:边框宽度,BorderStrokeStyle:边框类型
		//#8A2BE2后再加两位数表示透明度,例如:#8A2BE200:全透明,#8A2BE250:半透明
		BorderStroke bos = new BorderStroke(Paint.valueOf("#8A2BE2"), BorderStrokeStyle.SOLID,new CornerRadii(15), new BorderWidths(1));
		Border bo = new Border(bos);
		b1.setBorder(bo);
		
		
		//方式二:用CSS方式
		b2.setStyle(
				"-fx-background-color:#7CCD7C;"+
				"-fx-background-radius:10;"+
				"-fx-text-fill:#8A2BE2;"
				);
		
		//设置按钮监听事件
		b1.setOnAction(new EventHandler<ActionEvent>(){
			int i = 0;
			public void handle(ActionEvent event) {
				Button bu = (Button)event.getSource();
				System.out.println("你点了" + bu.getText() + " " + i + "下");
				i++;
			}
		});;
		//处理多击事件
		b2.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
			@Override
			public void handle(MouseEvent arg0) {
				System.out.println("鼠标按键=" + arg0.getButton().name());
				if(arg0.getClickCount() == 2 && arg0.getButton().equals(MouseButton.PRIMARY)) {
					System.out.println("双击b2");
				}
			}	
		});
		//处理键盘事件(按下)
		b2.setOnKeyPressed(new EventHandler<KeyEvent>() {
			@Override
			public void handle(KeyEvent arg0) {
				if(arg0.getCode().equals(KeyCode.A)) {//只对按下A有效
					System.out.println("你按下了" + arg0.getCode().getName());
				}		
			}			
		});
		//处理键盘事件(松开)
		b2.setOnKeyReleased(new EventHandler<KeyEvent>() {
			@Override
			public void handle(KeyEvent arg0) {
				System.out.println("你松开了" + arg0.getCode().name());
			}
		});
		
		Group root = new Group();
		root.getChildren().addAll(b1, b2);
		
		Scene scene = new Scene(root);
		//设置快捷键
		KeyCombination kccb = new KeyCodeCombination(KeyCode.Y, KeyCombination.SHORTCUT_DOWN);
		scene.getAccelerators().put(kccb, new Runnable() {
			@Override
			public void run() {
				System.out.println("你按下了ctrl + y");
				b1.fire();//调用b1的监听事件
			}
			
		});
		
		primaryStage.setScene(scene);
		primaryStage.setTitle("JavaFx");
		primaryStage.setHeight(600);
		primaryStage.setWidth(800);
		primaryStage.show();
	}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaFX-Support是一个开源项目,致力于为JavaFX提供友好的支持和工具。JavaFX是一个用于构建丰富用户界面的Java库,而JavaFX-Support项目旨在为开发人员提供便利和增强功能,以提高他们在开发JavaFX应用程序时的效率和体验。 JavaFX-Support项目具有以下特点和功能: 1.样式编辑器:JavaFX-Support项目提供了一个样式编辑器,使开发人员能够轻松编辑和定制JavaFX应用程序的视觉样式。通过这个编辑器,开发人员可以直观地调整应用程序的颜色、字体和其他视觉元素,而无需手动编写代码。 2.视觉组件库:JavaFX-Support项目还包含了一个丰富的视觉组件库,开发人员可以直接在应用程序中使用这些组件,而无需自己编写。这些组件可以帮助开发人员快速构建出现频率较高的界面元素,例如按钮、文本框、列表等。 3.布局助手:JavaFX-Support项目还提供了一个布局助手,用于在JavaFX应用程序中进行布局。开发人员可以方便地使用拖放方式调整和排列组件,从而更加灵活地设计界面。 4.调试工具:JavaFX-Support项目还包含了一些调试工具,用于帮助开发人员在开发过程中定位和修复问题。这些工具可以帮助开发人员追踪布局问题、排查异常和提高性能。 总的来说,JavaFX-Support项目是一个强大而实用的工具集,它使得开发人员可以更加便捷地开发和定制JavaFX应用程序。无论是初学者还是有经验的开发人员都可以从中受益,并提高他们在JavaFX开发中的效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pk5515

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值