javafx gui使用省略号的问题

时间:2016-09-29 18:34:16

标签: java javafx

我是javafx的新手,我正在尝试制作一个具有不同尺寸/颜色的椭圆环的GUI,类似于飞镖板。最终的目标是使它成为一个动画并让它旋转等等但是现在我只是想在我添加动画之前让GUI看起来/正常工作。我的问题是当我运行程序时,GUI出现空白/空白。我不知道为什么如此,如果你们看到我没有的东西,并且对新手有任何提示请一定告诉我!这是我到目前为止编写的代码:

package targetpractice;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Ellipse;
import javafx.stage.Stage;

public class targetpractice extends Application {

    private Ellipse[] rings;
    private Color[] colors = {Color.BLUE, Color.RED, Color.YELLOW};
    private final int NUMCOLORS = 3;

    double width = 0;
    double height = 0;
    int numRings = 0;

    @Override
    public void start(Stage primaryStage) {
        Pane pane = new Pane();


        rings = new Ellipse[numRings];
        for (int ringNum = numRings - 1; ringNum >= 0; ringNum--) {
            Ellipse e = new Ellipse(width / 2, height / 2, ringNum * (0.5 * width / numRings), ringNum * (0.5 * height / numRings));
            e.setFill(colors[ringNum % NUMCOLORS]);
            e.setStroke(Color.BLACK);
            rings[ringNum] = e;
            pane.getChildren().add(e);
        }

        Scene scene = new Scene(pane, 600, 400);
        primaryStage.setTitle("target practice");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

1 个答案:

答案 0 :(得分:1)

您正在ringNum循环中将for初始化为-1,并且只要>=0进行迭代。即你根本没有迭代。同样,您将rings数组初始化为零项数组。

据推测,您实际上想要将numRings设置为零以外的其他内容。同样,您可能希望将其他变量的值初始化为合理的值。