我正在尝试部分填充窗格的颜色,但是没有成功。 我需要做的是,给定一个百分比,填写该节点白色的百分比。 解释起来并不容易,所以我希望这个简单的drawing能够做到:
我试图做的是创建一个以 Pane.Width * Percentage 作为其宽度的Rectangle,并最终设置颜色,但是它不能按预期工作并且过于复杂。
有没有简单的方法,可以使用CSS或仅JavaFX代码来实现? 谢谢
答案 0 :(得分:0)
我不确定这是否是最好的解决方案,但只需5分钟即可完成。
import javafx.beans.binding.DoubleBinding;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
public class PercentageColorPane extends Pane {
double ratio;
DoubleBinding widthBinding;
public PercentageColorPane(double percent) {
assert 0.0 <= percent && percent <= 100.0;
ratio = 0.01 * percent;
Rectangle rectangle = new Rectangle();
rectangle.setFill(Color.RED);
widthBinding = widthProperty().multiply(ratio);
rectangle.setX(0.0);
rectangle.setY(0.0);
rectangle.heightProperty().bind(heightProperty());
rectangle.widthProperty().bind(widthBinding);
getChildren().add(rectangle);
}
}
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class PercentageColorPaneDemo extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
PercentageColorPane pane = new PercentageColorPane(30.0);
Scene scene = new Scene(pane, 800, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}