Java 在HBox中旋转每个图像视图
我需要在一个HBox中将同一个节点分别旋转45度、90度和135度 到目前为止,我有以下内容,但它只返回旋转135度的完整HBoxJava 在HBox中旋转每个图像视图,java,javafx,hbox,Java,Javafx,Hbox,我需要在一个HBox中将同一个节点分别旋转45度、90度和135度 到目前为止,我有以下内容,但它只返回旋转135度的完整HBox public HBox getBox() throws Exception { HBox hb = new HBox(); hb.getChildren().clear(); // Add nodes to hbox for (int i = 1; i <= 3; i++) {
public HBox getBox() throws Exception {
HBox hb = new HBox();
hb.getChildren().clear();
// Add nodes to hbox
for (int i = 1; i <= 3; i++) {
hb.setRotate(45 * i);
hb.getChildren().add(new ImageView(new Image(new FileInputStream("myFile.png"))));
}
return hb;
}
public HBox getBox()引发异常{
HBox hb=新的HBox();
hb.getChildren().clear();
//将节点添加到hbox
for(int i=1;i)如果在for循环中创建一个新的HBox实例,会发生什么?您正在调用hb.rotate(…)
因此,HBox
是正在旋转的。如果我正确理解了您的要求,您应该将旋转应用到循环中创建的ImageView
。此外,不要忘记关闭FileInputStream
。谢谢,这让我走上了正确的轨道。无需将同一图像加载到多个内存中多次。Image
实例可以在ImageView
s之间共享,这样可以减少应用程序的内存占用和性能。此外,在创建HBox
之后清除子列表没有任何效果,因为除非通过varargs构造函数添加子对象,否则HBox
是空的。。。如果在for循环中创建一个新的HBox实例,会发生什么?您正在调用hb.rotate(…)
因此,HBox
是正在旋转的。如果我正确理解了您的要求,您应该将旋转应用到循环中创建的ImageView
。此外,不要忘记关闭FileInputStream
。谢谢,这让我走上了正确的轨道。无需将同一图像加载到多个内存中多次。Image
实例可以在ImageView
s之间共享,这样可以减少应用程序的内存占用和性能。此外,在创建HBox
之后清除子列表没有任何效果,因为除非通过varargs构造函数添加子对象,否则HBox
是空的。。.