2010-05-29 33 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中佈局的最佳尺寸。