JavaFX ButtonSkin异常

时间:2009-08-10 19:17:30

标签: button slider javafx

在下面的代码中,为什么在使用ButtonSkin(来自com.sun.javafx.scene.control.caspian)时最初不显示按钮文本?

在以下代码(运行WinXP,NetBeans 6.7.1,JavaFX 1.2,JDK 1.6)中,使用ButtonSkin时,按钮文本将以空白开头。使用滑块后,将显示te按钮文本。

alt txt
(来源:googlepages.com
alt text
(来源:{{ 3}})

如果在移动滑块之前按下按钮,则会触发操作,打印“Some action slider 15.0 SliderInt 15”。这表明按钮文本的信息存在。但是不显示按钮文本。

如果未设置外观,即代码 skin: ButtonSkin { ... } 已注释掉,则在启动时结果为:

alt txt
(来源: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
}

1 个答案:

答案 0 :(得分:0)

我担心我对这个问题没有具体的答案,但我确实知道1.2中的新控件是相当错误的 - 所以你看到这样的问题并不会让我感到惊讶。< / p>

如果您还没有这样做,我建议您在Javafx JIRA网站的“运行时”部分提出错误:http://javafx-jira.kenai.com/