Initial project

This commit is contained in:
Timi
2025-07-14 14:12:45 +08:00
parent c1788c7d30
commit 16e11e30ce
32 changed files with 4945 additions and 94 deletions

View File

@ -0,0 +1,51 @@
package com.imyeyu.fx;
import javafx.beans.binding.Bindings;
import javafx.beans.binding.BooleanBinding;
import javafx.beans.binding.StringBinding;
import javafx.beans.property.DoubleProperty;
import javafx.beans.value.ObservableValue;
import com.imyeyu.utils.Calc;
import javafx.scene.control.SplitPane;
import java.util.Arrays;
/**
* @author 夜雨
* @version 2024-04-13 13:46
*/
public final class BindingUtils {
/**
* 多个布尔值绑定属性与运算
*
* @param values 布尔值绑定
* @return 与运算绑定
*/
@SafeVarargs
public static BooleanBinding and(ObservableValue<Boolean>...values) {
return Bindings.createBooleanBinding(()-> Arrays.stream(values).allMatch(ObservableValue::getValue), values);
}
/**
* 多个布尔值绑定属性或运算
*
* @param values 布尔值绑定
* @return 或运算绑定
*/
@SafeVarargs
public static BooleanBinding or(ObservableValue<Boolean>...values) {
return Bindings.createBooleanBinding(()-> Arrays.stream(values).anyMatch(ObservableValue::getValue), values);
}
/**
* 双精度转整型字符串绑定属性
*
* @param property 双精度浮点型属性
* @return 字符串绑定属性
*/
public static StringBinding integerStringBinding(DoubleProperty property) {
return Bindings.createStringBinding(() -> String.valueOf(Calc.round(property.get())), property);
}
}