2017-04-18 22 views
0

私は現在8x8ボードを製作しようとしていますが、私の矩形オブジェクトが表示されない理由を理解できないようです。私はボード全体を得るために複数回行う前に、1つの行の背後にある論理を理解しようとしています。以下は私の現在のコードです:JavaFXアプリケーションに何も表示されないのはなぜですか?

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
  1. for (int column = 0; column > 8; column++) - 0以上8
  2. r.setX(x)になることはありませんので、これは決して起こらないだろう - 私はあなたがこれを必要とは思いません。あなたはTilePaneのレイアウトに長方形を置きます。あなたはそれのためのサイズを定義する必要があります。
  3. Pane p = new Pane() - 個人的には、これは冗長だと思います。 TilePaneを使用するだけで正常に動作します。しかしこれであなたのプログラムはバグを起こすことはありません。
関連する問題