2016-05-14 9 views
0

これは比較的簡単な問題ですが、それは私を狂ってしまいます。私はJavaFXでMine Sweeperを作成しようとしています(ほとんどの場合は練習用ですが)、単純な四角形を表示することさえできません。以前は一度だけゲームを実行していましたが、ゲームをより抽象的にするためにコードを書くのが簡単ですが、何も表示されないという問題が発生しています。オブジェクトがJavaFXで表示されないのはなぜですか?

不要なコードをすべて削除しましたので、できるだけシンプルです。私は基本的に、Boxと呼ばれる特定の色とサイズの矩形を作成し、ペインにボックスを追加し、ペインを表示しようとしています。 Boxをペインに表示できるノードにするために、BoxクラスがRectangleと同じプロパティを持つように、Boxクラスextends Rectangleを作成しました。しかし、私はコードを実行すると、それはボックスがない空の枠だけを与えます。

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.layout.Pane; 
import javafx.stage.Stage; 

public class Minesweeper extends Application { 

    @Override 
    public void start(Stage stage) { 

     Pane pane = new Pane(); 

     Box box = new Box(); 

     pane.getChildren().addAll(box);  

     // Create the scene 
     Scene scene = new Scene(pane); 
     stage.setTitle("Minesweeper"); 
     stage.setScene(scene); 
     stage.show(); 

    } 

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

} 

import javafx.scene.paint.Color; 
import javafx.scene.shape.Rectangle; 

public class Box extends Rectangle { 

    public Box() { 

     Rectangle box = new Rectangle(100, 100, 100, 100); 

     box.setFill(Color.BLUE); 

    } 

} 

BoxのコードをメインのMinesweeperクラスに入れると、ボックスが表示されます。しかし、ボックスは、他のプロパティのトンを持っているので、独自のクラスにする必要があります。

私は間違っていて、ボックスを表示することはできません。

ご協力いただきありがとうございます。

+0

:にあなたのコードを変更し 。オーバーライドする必要がある 'paint'メソッドがありますか? – Zymus

答えて

2

Boxクラスに新しいRectangleを作成します。このRectangleParentコンテナに追加されないため、表示されません。あなたはボックスのコンストラクタで新しいRectangleオブジェクトを作成しますが、どこでもそれを保存するか、それを何もしていない

public Box() { 
     super(100, 100, 100, 100); 
     setFill(Color.BLUE); 
    } 
+0

これは完璧です。どうもありがとうございました。完璧な意味合いも作ります。 – Nathan

関連する問題