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

如何适当地获得文本和文本的颜色在4种颜色之间切换/改变?

刘京
2023-03-14

我目前已经将JavaFX代码设置为在蓝色和红色之间切换。当程序运行时,一个带有文本“更改为红色”的按钮以蓝色文本出现。如果我点击这个按钮,它就会变成用红色文本写的“更改为蓝色”。如果我再次单击它,循环就会重新开始。我想做的是应用相同的图案,但使用四种颜色。例如,我希望它以:

“变绿”,用红色文字书写。

然后在咔嚓一声之后。

“变紫”,用绿色文字书写。

public class FirstUserInput extends Application {

    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button();
        btn.setText("Change to Red");
        btn.setTextFill(Color.BLUE);

    btn.setOnAction(e -> {
        if (btn.getTextFill() == Color.RED) {
            btn.setText("Change to Red");
            btn.setTextFill(Color.BLUE);
        } else {
            btn.setText("Change to Blue");
            btn.setTextFill(Color.RED);
        }
    });

有人能帮我把这个代码改成四种颜色吗?

共有1个答案

罗韬
2023-03-14

如果您想减少使用if-else语句编写的代码,那么可以使用数组或枚举来保存所有选项,并在每个操作事件上选择正确的选项,如下所示:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class TestApp extends Application {

    private int index = 0;

    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button();
        btn.setText("Change to Red");

        String allTexts[] = { "Change to Red", "Change to Blue", "Change to Green", "Change to Pink" };
        Color allColors[] = { Color.BLUE, Color.RED, Color.PINK, Color.GREEN };

        btn.setOnAction(e -> {

            index++;
            if(index >= allTexts.length ) {
                index = 0;
            }

            btn.setText(allTexts[index]);
            btn.setTextFill(allColors[index]);

        });

        VBox box = new VBox();
        box.getChildren().add(btn);

        primaryStage.setScene(new Scene(box));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

好,以上工作时的变化是顺序的,我希望你正在寻找的。

 类似资料:
  • 如何将标题字体颜色更改为白色,填充为绿色?以下是我正在使用的类: 我相信,这是必须插入的代码。

  • fontColor(int $color): self int $color $config = [ 'path' => './tests' ]; ​ $fileObject = new \Vtiful\Kernel\Excel($config); ​ $fileObject = $fileObject->fileName('tutorial.xlsx'); $fileHandle =

  • 问题内容: 我正在编写一个简单的扫雷游戏,现在可以运行,但是我正在处理一些漂亮的细节,例如使每个数字使用不同的颜色。 尝试在上设置文本颜色时,我总是遇到错误。我可以很容易地更改文本和背景,但是不能专门更改文本颜色。 导致一切混乱的部分是: 由于某种原因,我的错误是: 每当我尝试编译时都会发生这种情况,但是当我将其更改为说而不是正常工作时,就会发生这种情况。 问题答案: 对于JButton未定义。要

  • 问题内容: 我制作了一个使用 ActionBarCompat* 的应用程序 * 我使用 SlidingTabLayout 类创建了选项卡。 该类是这样的: SlidingTabLayout.java 但我无法更改标签的颜色… 我的viewpager片段是这样的: 该应用程序运行良好,但我无法更改标签的 颜色文本 … 看到以下示例后,我制作了该应用程序: rudsonlive /导航抽屉-ViewP

  • 我一直试图改变我的时间选择器的文本颜色。但是我找不到父样式的位置。我两个都试过了 和 我的是15。我的是20。我已经重建并清理了我的项目 我想我已经解决了所有类似的问题,但没有一个真正为我提供了解决方案。唯一可行的答案是使用某种库,但我不太喜欢这种解决方案。到父级的路径是否与我正在使用的路径有所不同,因为我非常确定我应该能够以某种方式访问它? 编辑 这是主题的应用方式; 请注意,这是我收到的错误(

  • 问题内容: 我有一个引导网站,当屏幕尺寸小于992px时,会添加Hamburger切换器。代码如下: 可以更改汉堡切换按钮的颜色吗? 问题答案: Bootstrap 4中的(汉堡包)使用SVG 。切换器图标图像有2个“版本”。一个用于浅色导航栏,另一个用于深色导航栏… 使用了较深的背景光/白色toggler 使用上较亮的背景黑色/灰色toggler 因此,如果要将切换器图像的颜色更改为其他颜色,可