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

当程序等待按下按钮时,我如何做某事?[关闭]

丌官瀚
2023-03-14

想改进这个问题吗 通过编辑此文章,添加详细信息并澄清问题。

当计数器小于3并且我等待单击按钮时,我想一直更改循环颜色。当循环是红色时,他需要按“停止”。这是程序:

public class Q1_2 extends Application {
    private MyCircle circle = MyCircle.getInstance();
    public int COUNTER;
    public Color CURRENT_COLOR;
    public Color currentColor;
    public static void main(String[] args) {
        launch();
    }
    @Override
    public void start(Stage primaryStage) throws Exception {
        circle.setRadius(100);
        RadioButton bColor = new RadioButton("Stop");
        COUNTER = 0;
        HBox box = new HBox(40, bColor);
        box.setPadding(new Insets(30));
        StackPane pane = new StackPane(circle, box);
        Scene scene = new Scene(pane, 500, 500);
        primaryStage.setScene(scene);
        primaryStage.show();
        bColor.setOnAction(e -> {
            if (bColor.isSelected() == true && currentColor != javafx.scene.paint.Color.RED) {
                COUNTER++;
                bColor.setSelected(false);
            }
            if (bColor.isSelected() == true && currentColor == javafx.scene.paint.Color.RED)
                System.out.println("GREAT");
        });
        while (COUNTER < 3) {
            currentColor = chooseColor();
            circle.setFill(currentColor);
            if (COUNTER == 3)
                System.out.println("YOU LOSE");
        }
    }
}

非常感谢。

共有1个答案

徐焱
2023-03-14

如果我理解正确,您可以使用时间轴更改圆圈的颜色,并在按下按钮时停止时间轴

示例代码:

import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
import javafx.util.Duration;

/**
 *
 * @author blj0011
 */
public class JavaFXApplication357 extends Application
{

    @Override
    public void start(Stage primaryStage)
    {
        List<Color> colors = Arrays.asList(Color.RED, Color.BLUE, Color.GREEN, Color.YELLOW, Color.PURPLE);
        AtomicInteger counter = new AtomicInteger(0);
        Circle circle = new Circle(200, Color.TRANSPARENT);

        Timeline timeline = new Timeline(new KeyFrame(Duration.millis(300), (event) -> {
            circle.setFill(colors.get(counter.getAndIncrement() % colors.size()));
        }));
        timeline.setCycleCount(Timeline.INDEFINITE);
        timeline.play();

        Button btn = new Button();
        btn.setText("Stop");
        btn.setOnAction((ActionEvent event) -> {
            timeline.stop();
        });

        VBox root = new VBox(new StackPane(circle), new StackPane(btn));

        Scene scene = new Scene(root, 450, 450);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        launch(args);
    }

}
 类似资料:
  • 我目前正在开发一个聊天程序的登录表单,希望该程序加载框架并等待用户输入。不可饶恕的是,程序打开了框架,但同时又恢复了主方法。我希望你有一些想法来帮助我。 问候语 JFrame类:

  • 我有一个带有searchView图标的操作栏。我点击searchView图标,出现softInputMode键盘,我的ListView出现用于搜索。但是,当您关闭searchView时,searchView会关闭,但我无法让ListView在searchView关闭时也关闭。 下面是我在activity_maps中的ListView代码。xml 地图ctivity.java 所以最初当MapsAc

  • 如果我按下呼叫按钮,我会得到一个错误,即出租车没有呼叫,而是转到另一个窗口。 我认为这个错误来自实时数据库。如果你有不同的意见,写下你的答案。 错误:E/AndroidRuntime:致命异常:主进程:com。实例乌兹别克斯坦,PID:8915爪哇。lang.NullPointerException:尝试调用虚拟方法“double android”。地方地方getLatitude()'位于com上

  • 在我的Android Studio应用程序中,我设计了一个屏幕(不使用XML,而是使用设计模式)。我已经将其中一个按钮的属性设置为类中的。 这是我的纽扣 设置属性 E/libc:拒绝访问查找属性“vendor.debug.egl.swapinterval”W/renderthread:type=1400审核(0.0:1269):avc:拒绝{read}name=“u:object_r:vendor

  • 09-08 07:58:32.915 137 26-13726/com.ruthadeaton.bld3.calculator e/androidruntime:致命异常:main process:com.ruthadeaton.bld3.calculator.calculator,PID:13726 java.lang.numberformatexception:empty string ats

  • 问题内容: 我希望脚本等待用户按下任何键。 我怎么做? 问题答案: 在 Python 3中 使用: 在 Python 2中 使用: 不过,这仅等待用户按下Enter键。 可能要使用 msvcrt ((仅Windows / DOS)使用 msvcrt 模块可以访问Microsoft Visual C / C ++运行时库(MSVCRT)中的许多功能): 这应该等待按键。 附加信息: Python 3