VBox& amp;和Javafx布局问题横向方框

时间:2010-05-29 09:25:31

标签: javafx hbox

当我运行以下内容时,我注意到节点之间的间距;我的研究显示 - 1)如果我没有通过setwininfo向win1添加任何文本,那么没有问题。 2)当我将这个代码包含在一个更大的应用程序中时,当从其他地方看到一个按钮点击时,神秘的是间距得到纠正。 3)我尝试绑定win1& win2节点到场景的内容 - 但没有运气。

def mainframew:Integer = 250; def mainframeh:Integer = 500;

class CtrlWindow扩展了CustomNode {

var wininfo : String;
var fsize : Integer;
var width : Integer;

public function setWinInfo(info : String) {
    wininfo = info;
}

override protected function create () : Node {
    var win = Group {
                                    content: [
                                         VBox {
                                                content: [
                                                    Text {
                                                            font : Font {
                                                                    size: fsize
                                                            }

                                                            content : bind wininfo

                                                            textAlignment : TextAlignment.CENTER  // did not work
                                                    }
                                                ]
                                        }

                                        Rectangle {
                                                width: width, height: 25
                                                fill: Color.TRANSPARENT
                                                strokeWidth : 2
                                                stroke : Color.SILVER
                                        }

                                    ]
                            }

    return win;
}

}

public function run(args:String []){

var win1 = CtrlWindow {fsize:14,width:mainframew};    var win2 = CtrlWindow {fsize:14,width:mainframew};

win1.setWinInfo(“这些节点之间的间距”);    win2.setWinInfo(“收到事件后纠正自己”);

阶段{

title : "MyApp"
scene: Scene {
    width: mainframew
    height: mainframeh
    content: [
                        VBox {
                               spacing: 0
                               content: [
                                            HBox {
                                                    content: win1
                                            }

                                            HBox {
                                                    content: win2
                                            }
                                ]
                        }
            ]
}
}

1 个答案:

答案 0 :(得分:1)

假设您使用的是JavaFX 1.3,则问题可能与CtrlWindow的首选大小有关。您可能希望使用layoutInfo来设置公共首选大小,否则,首选大小将随着两个CtrlWindow节点的内容而变化。

类似的东西:

win1 = CtrlWindow{
        fsize:14
        layoutInfo : LayoutInfo { width: mainframew, minHeight: 50 }
   }

当您仅设置宽度(没有绑定)时,这将重置为HBox布局中的首选大小。