当我运行以下内容时,我注意到节点之间的间距;我的研究显示 - 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
}
]
}
]
}
}
答案 0 :(得分:1)
假设您使用的是JavaFX 1.3,则问题可能与CtrlWindow的首选大小有关。您可能希望使用layoutInfo来设置公共首选大小,否则,首选大小将随着两个CtrlWindow节点的内容而变化。
类似的东西:
win1 = CtrlWindow{
fsize:14
layoutInfo : LayoutInfo { width: mainframew, minHeight: 50 }
}
当您仅设置宽度(没有绑定)时,这将重置为HBox布局中的首选大小。