在下面的代码中,为什么在使用ButtonSkin(来自com.sun.javafx.scene.control.caspian)时最初不显示按钮文本?
在以下代码(运行WinXP,NetBeans 6.7.1,JavaFX 1.2,JDK 1.6)中,使用ButtonSkin时,按钮文本将以空白开头。使用滑块后,将显示te按钮文本。
(来源:googlepages.com)
致
(来源:{{ 3}})子>
如果在移动滑块之前按下按钮,则会触发操作,打印“Some action slider 15.0 SliderInt 15”。这表明按钮文本的信息存在。但是不显示按钮文本。
如果未设置外观,即代码 skin: ButtonSkin { ... }
已注释掉,则在启动时结果为:
(来源:googlepages.com)
如果取而代之的是 text: sliderIntText
中的绑定,问题也会消失。但是,按钮文本不再与滑块移动同步更新。
删除间接级别,即只是绑定到按钮文本中的answerSlider.value,不会改变启动问题。
除此之外:当滑块min不为0时,会出现一个已知的滑块值问题。我不是在这里尝试解决这个问题。
package skinbutton;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.control.Button;
import com.sun.javafx.scene.control.caspian.*;
import javafx.scene.paint.Color;
import javafx.scene.control.Slider;
var answerSlider =
Slider {
min: 6
max: 32
value: 15
width: 100
translateX: 75
translateY: 20
};
var sliderIntValue:Integer = bind (java.lang.Math.floor(answerSlider.value)) as Integer ;
var sliderIntText = bind "SliderInt {%d sliderIntValue}";
var sceneSlider = Scene{
content: [
answerSlider,
Text {
font : Font {
size: 14
}
x: 75
y: 50
content: bind "Slider at {%4.1f answerSlider.value}"
}
Button {
translateX: 75
translateY: 60
skin: ButtonSkin {
fill: Color.LIGHTCORAL
textFill: Color.BLACK
}
text: bind sliderIntText
width: 95
font: Font.font("SansSerif", FontWeight.BOLD, 14)
action: function() {
println("Some action slider {%4.1f answerSlider.value} {sliderIntText}");
}
}
]
};
Stage {
title: "Button Skin Issue"
width: 250
height: 130
scene: sceneSlider
}
答案 0 :(得分:0)
我担心我对这个问题没有具体的答案,但我确实知道1.2中的新控件是相当错误的 - 所以你看到这样的问题并不会让我感到惊讶。< / p>
如果您还没有这样做,我建议您在Javafx JIRA网站的“运行时”部分提出错误:http://javafx-jira.kenai.com/