2010-05-29 34 views
1

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

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

类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; 
} 

}

公共函数run(参数:字符串[]){

变种WIN1 = CtrlWindow {FSIZE:14,宽度: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 
              } 
           ] 
         } 
      ] 
} 
} 
+0

尝试格式化您的代码:仅缩进4个空格。目前它是完全不可读的。 – 2010-05-29 09:29:23

回答

1

假设你正在使用JavaFX 1.3,该问题可能涉及到CtrlWindow的首选尺寸。您可能希望使用layoutInfo来设置通用首选大小,否则,首选大小将随着两个CtrlWindow节点的内容而改变。

是这样的:

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

当仅仅设置宽度(无结合),这将被重置为在HBox中布局的最佳尺寸。