2011-07-28 33 views
0

我在Netbeans中使用JavaFX 2。如何调整元素的宽度和高度以调整帧的大小?这里是我的布局:绑定BorderPane和框架高度和宽度

Stage stage = new Stage(); 
stage.setTitle("Hello World"); 
final Group root = new Group(); 
Scene scene = new Scene(root); 

BorderPane border = new BorderPane(); 
border.setPrefWidth(stage.getWidth()); 
border.setPrefHeight(stage.getHeight()); 

HBox outerHBox = new HBox(); 
border.setCenter(outerHBox); 
root.getChildren().add(border); 
stage.setScene(scene); 

一些调查研究 我发现这个地方已经http://java.dzone.com/articles/setting-stage-javafx-sdk做过之后,但它是一个较旧的FX(从JavaFX的2个非常不同)。我无法翻译它。看起来我应该使用绑定?我以前从未使用过绑定,而我几乎没有使用FX。

什么是最好的方式来实现这一目标?

+0

你能简化你的示例代码吗?也许,只需将'outerBox'添加到'root'就足够了。 – pmoule

+0

@pmoule我简化了这个例子。抱歉。 – Dorothy

回答

1

并非所有的Node类都可以调整大小。 Group类是其中之一。在您的root对象上调用isResizable()时,您会理解这一点。改为使用Region的子类,例如BorderPane作为您的root

Stage stage = new Stage(); 
stage.setTitle("Hello World"); 

final BorderPane border = new BorderPane(); 
Scene scene = new Scene(border); 

Button button = new Button("test"); 

HBox outerHBox = new HBox(); 
outerHBox.getChildren().add(button); 
outerHBox.setAlignment(Pos.CENTER); 

border.setCenter(outerHBox); 

stage.setScene(scene); 

你的例子现在应该工作。

+0

谢谢! :D我确实找到了一种方法(在舞台上有2维听众),但这更简单。 – Dorothy