为什么我的JavaFX应用程序中不会显示任何内容?

时间:2017-04-18 02:59:10

标签: java object layout javafx

我目前正在尝试制作8x8电路板,似乎无法弄清楚为什么我的矩形对象没有显示。我试图找出一行背后的逻辑,然后我多次执行它以获得整个电路板。以下是我目前的代码:

import javafx.application.*;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.layout.TilePane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

public class Board extends Application {

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

    public void start(Stage ps) {

        TilePane tp = new TilePane();
        Pane p = new Pane();

        for (int column = 0; column > 8; column++) {
            // This loop is used to determine the center of the rectangle
            for (int x = 10; x < 160; x += 20) {        
                Rectangle r = new Rectangle();
                r.setWidth(20);
                r.setHeight(20);
                r.setX(x);
                r.setY(10);
                if (column == 0 || column % 2 == 0) {
                    r.setFill(Color.BLACK);
                }
                else {
                    r.setFill(Color.GREY);
                }
                tp.getChildren().add(r);
            }
        }

        p.getChildren().add(tp);
        Scene s = new Scene(p, 160, 160);

        ps.setScene(s);
        ps.setTitle("PP2 Halma Project");
        ps.show();
    }
}

1 个答案:

答案 0 :(得分:1)

  1. for (int column = 0; column > 8; column++) - 这绝不会发生,因为0永远不会超过8。
  2. r.setX(x) - 我认为你不需要这个。您应该让TilePane为您布置矩形;你只需要为它定义一个大小。
  3. Pane p = new Pane() - 我个人认为这是多余的。没有它只使用TilePane就可以了。但是,这不会导致您的程序出错。