2016-10-18 25 views
0

快速問題,多個窗口在執行時不顯示(1個,共3個)

爲什麼我的多個窗口沒有出現在此代碼中?

還有關於如何在窗口尺寸增大時僅通過舞臺的分辨率增加圓的直徑的任何提示;無論如何通過「circ3」進行內部操作。

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

public class Circles extends Application { 

@Override 
public void start(Stage primaryStage){ 

    Pane pane = new Pane(); 
    Circle circ = new Circle(); 
    circ.setStroke(Color.DARKBLUE); 
    circ.setFill(Color.YELLOW); 
    circ.centerXProperty().bind(pane.widthProperty().divide(10)); 
    circ.centerYProperty().bind(pane.heightProperty().subtract(20)); 
    circ.centerXProperty().bind(pane.widthProperty().subtract(20)); 
    circ.setRadius(20); 
    pane.getChildren().add(circ); 
    Scene scene = new Scene(pane, 500, 200); 
    primaryStage.setTitle("Bottom Right"); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 


    Pane pane2 = new Pane(); 
    Circle circ2 = new Circle(); 
    circ2.setStroke(Color.PEACHPUFF); 
    circ2.setFill(Color.YELLOWGREEN); 
    circ2.centerXProperty().bind(pane2.widthProperty().divide(2)); 
    circ2.centerYProperty().bind(pane2.heightProperty().subtract(20)); 
    circ2.setRadius(20); 
    pane2.getChildren().add(circ2); 
    Scene scene2 = new Scene(pane2, 200, 500); 
    primaryStage.setTitle("Bottom Centered"); 
    primaryStage.setScene(scene2); 
    primaryStage.show(); 


    Pane pane3 = new Pane(); 
    Circle circ3 = new Circle(); 
    circ3.setStroke(Color.PEACHPUFF); 
    circ3.setFill(Color.YELLOWGREEN); 
    circ3.centerXProperty().bind(pane3.widthProperty().subtract(150)); 
    circ3.centerYProperty().bind(pane3.heightProperty().divide(2)); 
    circ3.setRadius(150); 

    //size (circle diameter) needs to scale with width resolution 
    pane3.getChildren().add(circ3); 
    //boilerplate 
    Scene scene3 = new Scene(pane3, 300, 500); 
    primaryStage.setTitle("Radius/Width "); 
    primaryStage.setScene(scene3); 
    primaryStage.show(); 
} 


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

你只有一個窗口,'primaryStage'。你指的其他窗口在哪裏? –

+0

我是否爲每個窗口創建了一個新方法? –

+0

再一次,不確定「我擁有的每個窗口」是什麼意思。這個代碼中只有一個窗口。如果你想要更多的窗口,可以創建更多的「舞臺」。 –

回答

0

您可以使用綁定窗口的大小進行循環變化大小:

Pane pane3 = new Pane(); 
Circle circ3 = new Circle(); 
circ3.setStroke(Color.PEACHPUFF); 
circ3.setFill(Color.YELLOWGREEN); 
circ3.centerXProperty().bind(pane3.widthProperty().divide(2)); 
circ3.centerYProperty().bind(pane3.heightProperty().divide(2)); 
circ3.radiusProperty().bind(pane3.widthProperty().divide(2));