0509面向对象课设--阅读写给大忙人看的javase 8 记录

RGB颜色对照表
RGB2
改变label颜色方法,这里同样使用了lambda表达式注册事件

red.setOnAction(event->message.setTextFill(javafx.scene.paint.Color.AQUAMARINE));
  • javafx滑块控件有一个属性value,该属性会在发生改变时发起事件。
//设置滑块的value值的事件监听
		Slider slider =new Slider();
		slider.valueProperty().addListener(property->message.setFont(new Font(slider.getValue())));
		p.getChildren().addAll(message,red,slider);
  • 在javafx中,监听属性是非常常见的,例如,如果你希望当用户在文本框中输入文本时改变用户界面的某一部分,那么你应当对文本框的text属性添加一个监视器。
javafx属性
  • 属性property通常对应着一个你可以读写的字段,并且属性的getter和setter方法通常只是读取和设置该字段。
  • javafx除了以上两个方法之外,还有第三个方法,它可以返回一个实现了property接口的对象,可以在该property对象上添加监听器
  • 对silder属性的绑定
slider.valueProperty().addListener((property,oldvalue,newvalue)->message.setFont(new Font(newvalue.doubleValue())));
  • 对textarea的值进行绑定
TextArea t1=new TextArea();
		h1.getChildren().add(t1);
		t1.setText("1");
		TextArea t2=new TextArea();
		h2.getChildren().add(t2);
		p.getChildren().add(h1);
		p.getChildren().add(h2);
		t1.textProperty().bind(t2.textProperty());//t1的值受制于t2
t1.textProperty().bindBidirectional(t2.textProperty());//双向绑定
  • 或许可以使用这种绑定使目标居中
Bindings.divide(s.widthProperty(), 2);//会得到一个值,始终为场景width属性值的一半
l.layoutXProperty().bind(Bindings.divide(s.widthProperty(), 2));
  • 可以使用disableproperty决定按钮是否可用
  • `Bindings.greaterThanOrEqual();可以使用与property大于等于的判断
  • Bindings的相关操作:
  • 在这里插入图片描述
布局
  • 东西南北中布局
BorderPane pane= new BorderPane();
		pane.setTop(new Button("Top"));
		pane.setLeft(new Button("Left"));
		pane.setCenter(new Button("Center"));
		pane.setRight(new Button("Right"));
		pane.setBottom(new Button("Bottom"));
		Scene  s=new Scene(pane);
  • Hbox布局 horizon
HBox box =new HBox(10);//控件之间有10个像素的间隔
box.setPadding(new Insets(10));//与边框之间的距离

在这里插入图片描述

  • javafx中的多种布局
    在这里插入图片描述
  • 使用css加入,使形式完整
package application;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class demo5 extends Application {

	@Override
	public void start(Stage primaryStage) throws Exception {
		// TODO Auto-generated method stub
		GridPane pane=new GridPane();
		pane.setId("pane");
		Scene scene=new Scene(pane);
		scene.getStylesheets().add(getClass().getResource("scene.css").toExternalForm());
		primaryStage.setScene(scene);
		primaryStage.show();
	}
	public static void main(String[]args) {
		launch(args);
	}

}

css:

#pane{
	-fx-padding:0.5em;
	-fx-hgap:0.5em;
	-fx-vgap:0.5em;
	-fx-background-image:url("metal.jpg")
}

需要注意的是,一定要创建javafx project 否则会出现无法识别css的情况

  • 也可以使用css类
  • buttons.getStyleClass().add("buttonrow");
  • .buttonrow{
    -fx-spacing: 0.5em;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值