1

スライダーに「foo50」などのラベルを付けていない次のコードがあります...setLabelFormatter呼び出しで期待されるように、代わりに効果がないようです(スライダーには50、100などのラベルが付けられ、printlnは実行されません) . 足りないものはありますか?これはデフォルトの 2.2 スキンでは実装されていませんか? Oracle Java 7 の使用

package javafxbugtest;

import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.stage.*;
import javafx.util.StringConverter;

public class JavaFXBugTest extends Application
{
    @Override
    public void start(final Stage primaryStage)
    {
        Slider cp = new Slider();
        cp.setLabelFormatter(new StringConverter<Double>() {

            @Override
            public String toString(Double t)
            {
                System.out.println("nope?");
                return "foo" + t.toString();
            }

            @Override
            public Double fromString(String string)
            {
                System.out.println("hey");
                throw new UnsupportedOperationException("Not supported yet.");
            }
        });
        cp.setMax(300);
        cp.setMin(0);
        cp.setShowTickLabels(true);
        cp.setShowTickMarks(true);
        cp.setMajorTickUnit(50);
        cp.setMinorTickCount(4);
        cp.setValue(152);
        Scene scene = new Scene(cp);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}
4

1 に答える 1

1

JavaFX 2.x (Java 7) で動作しないスライダー ラベル フォーマッタは、Java 8で修正されたバグのようです。

RT-18448 [Slider] ラベル フォーマッタが適用されない。

于 2013-08-19T17:47:02.047 に答える