当前位置: 首页 > 知识库问答 >
问题:

如何使用关键帧更改JavaFX标签的textFill?

鲁英卫
2023-03-14

共有1个答案

鄢飞鸾
2023-03-14

类型为t的JavaFX属性xxx的方法命名模式为:

public Property<T> xxxProperty() // returns the property itself
public T getXxx() // returns the value of the property
public void setXxx(T x) // sets the value of the property

因此,例如,对于标签标签继承的textfill属性,有一个public objectproperty textFillProperty() 方法,返回实际的属性。

所以你所需要的就是

new KeyFrame(Duration.seconds(2), new KeyValue(label.textFillProperty(), Color.GREEN))
import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Duration;

public class TextFillTransition extends Application {

    @Override
    public void start(Stage primaryStage) {
        Label label = new Label("Transitioning the fill of a label");
        label.setStyle("-fx-font-size: 24pt ;");

        Timeline timeline = new Timeline(
            new KeyFrame(Duration.seconds(0), new KeyValue(label.textFillProperty(), Color.RED)),
            new KeyFrame(Duration.seconds(2), new KeyValue(label.textFillProperty(), Color.GREEN))
        );
        timeline.setAutoReverse(true);
        timeline.setCycleCount(Animation.INDEFINITE);
        timeline.play();

        StackPane root = new StackPane(label);
        root.setPadding(new Insets(12));
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
 类似资料:
  • 我希望javafx标签自动更新为正在输入到文本字段中的内容,目前我只有在单击回车键时才更改它。我正在使用秋千和javafx的混合。 这可能吗? 谢谢

  • 我需要更改JavaFX中标签的锚点。我将锚点描述为选择来翻译底层节点的点。默认情况下,锚点似乎是左上角。 我试图通过如下描述的附加翻译来解决这个问题: 代码应转换标签,使其像右下角的锚点一样工作。这不起作用,因为在我执行代码时,标签的边界框是[minX:0.0,minY:0.0,minZ:0.0,宽度:-1.0,高度:-1.0,深度:0.0,maxX:-1.0,maxY:-1.0,maxZ:0.0

  • 我正在尝试为用Java编写的应用程序制作GUI。 我用Scene Builder制作了fxml文档,正确设置了fx: id,现在我正在尝试对表单进行简单的更改。 我的DocumentController: 我的外汇主文件: 我现在想要的一切,都是将LabelData设置为实际时间戳,但当我运行FX主文件时,什么都不会发生。有人能帮我吗? 谢谢你保罗 更新时间: 我的整个FXML文档: 我想要的一切

  • null 我是否可以从子控制器-b更改父FXML-A中标签的文本?

  • 从问题的答案中,我可以理解FXMLDocumentController可以作为参数传递,但我不确定如何在通过javascript回调访问控制器时访问它。

  • 问题内容: 我正在使用python + BeautifulSoup解析HTML文档。 现在,我需要用替换HTML文档中的所有元素。 如何更改标签名称,而不更改文档中的其他任何内容? 问题答案: 我不知道您的访问方式,但以下内容对我有用: 命令输出为: 如您所见,变成了。文件中的其他内容都没有改变。我正在使用Python 2.6和BeautifulSoup 3.2.0。 如果您有多个,并且想要全部更