【发布时间】:2018-03-27 11:35:53
【问题描述】:
我想做什么: 有一个从 0 到 10 的滑块,让它只移动一个完整的刻度 (1),并在刻度上方显示刻度的值。
会发生什么: 它显示了从 0 到 10 的所有值,除了神秘缺失的 9 ..
我想在这里上传一张图片,但我似乎缺乏声誉 ;)
https://pasteboard.co/HdPtzVp.png
代码: 主类:
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.geometry.Rectangle2D;
import javafx.scene.Scene;
import javafx.scene.layout.HBox;
import javafx.stage.Screen;
import javafx.stage.Stage;
public class StartGui extends Application
{
@Override
public void start(Stage stage)
{
HBox box = new HBox();
PionnenSlider slider = new PionnenSlider();
box.getChildren().add(slider);
Scene scene = new Scene(box, 500, 300);
stage.setScene(scene);
stage.setTitle("SliderMinimalCode");
Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();
stage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
滑块类:
import javafx.scene.control.Slider;
public class PionnenSlider extends Slider
{
public PionnenSlider()
{
setMinorTickCount(0);
setBlockIncrement(1);
setMajorTickUnit(1);
setValue(0);
setMax(10);
setShowTickMarks(true);
setShowTickLabels(true);
setSnapToTicks(true);
}
}
【问题讨论】:
-
您未显示的代码有问题;) 请阅读stackoverflow.com/help/mcve 并采取相应措施
-
... 如果您可以通过配置实现相同的控制,请不要扩展控件(也不要扩展任何其他类)
-
滑块的唯一变化发生在 PionnenSlider 类中
-
Hmm .. 您的示例确实按预期显示倒数第二个刻度标签(9)。仅当我将窗口的宽度减小到最小时,由于缺少空间,它才不会显示。再说一遍:不要扩展 - 不需要 PionnenSlider,它只是使用公共 api 配置!
-
这不是因为没有足够的空间显示9吗?增加维度将解决问题。示例here.