gpt4 book ai didi

Javafx 线条颜色和字母 'q' 退出程序

转载 作者:行者123 更新时间:2023-12-01 10:11:03 27 4
gpt4 key购买 nike

我的这部分作业有效并已完成。尽管我正在努力弄清楚从哪里开始,但我想对此进行补充。我想改变每条线条运动的颜色。例如,如果我按下箭头键,该线将是红色的,或者向右该线将是蓝色的,等等。

我还尝试通过单击字母 q 来退出程序。

package derienzo15;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Line;
import javafx.scene.paint.Color;
import javafx.stage.Stage;


public class DrawLines extends Application {

Pane pane = new Pane();
double width = 1000;
double height = 1000;
double cX = width / 2;
double cY = height / 2;

@Override
public void start(Stage primaryStage) {


pane.setOnKeyPressed(e -> {
switch (e.getCode()) {
case UP: moveUp(); break;
case DOWN: moveDown(); break;
case LEFT: moveLeft(); break;
case RIGHT: moveRight(); break;
}
});

primaryStage.setScene(new Scene(pane, width, height));
primaryStage.setTitle("Click to see position..");
primaryStage.show();
pane.requestFocus();
}

private void moveUp() {
pane.getChildren().add(new Line(cX, cY, cX, cY - 10));
cY -= 10;



}

private void moveDown() {
pane.getChildren().add(new Line(cX, cY, cX, cY + 10));
cY += 10;

}
private void moveLeft() {
pane.getChildren().add(new Line(cX, cY, cX - 10, cY));
cX -= 10;

}
private void moveRight() {
pane.getChildren().add(new Line(cX, cY, cX + 10, cY));
cX += 10;
}



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

最佳答案

要退出,您需要在 pane.setOnKeyPressed switch 语句中添加另一个 case

所以:

pane.setOnKeyPressed(e -> {
switch (e.getCode()) {
case UP: moveUp(); break;
case DOWN: moveDown(); break;
case LEFT: moveLeft(); break;
case RIGHT: moveRight(); break;
case Q: primaryStage.close(); break;
}
});

要更改线条颜色,您必须修改按箭头键时触发的函数。要更改线条颜色,您可以使用 setStroke .

private void moveUp() {
Line line = new Line(cX, cY, cX, cY - 10);
line.setStroke(Color.BLUE);
pane.getChildren().add(line);
cY -= 10;
}

您会注意到我将线条对象创建放在自己的行上,因此您可以执行 setStroke 方法。

关于Javafx 线条颜色和字母 'q' 退出程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36110044/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com