【问题标题】:How to make visible only the extremities for JSliders如何仅使 JSlider 的四肢可见
【发布时间】:2012-02-12 06:07:22
【问题描述】:

假设我有一个从 0 到 100 的水平 JSlider。我想做的是: - 将主要间距设置为 10,将次要间距设置为 5,但数字不应可见 - 四肢的值(0 和 100)应该是可见的 - 当我移动定位箭头时,我希望鼠标光标旁边有一个标签,告诉我实际值。

【问题讨论】:

标签: java swing margin jslider


【解决方案1】:

将主要间距设置为 10,次要间距设置为 5,但数字不应该是 可见 - 四肢的值(0 和 100)应该是可见的

这可以使用 JSlider 的一些方法轻松完成,例如,

JSlider slider = new JSlider(JSlider.VERTICAL, 0, 100, 0);
slider.setMinorTickSpacing(5);
slider.setMajorTickSpacing(10);
slider.setPaintTicks(true);
Hashtable<Integer, JLabel> labels = new Hashtable<Integer, JLabel>();
labels.put(0, new JLabel("0"));
labels.put(100, new JLabel("100"));
slider.setLabelTable(labels);
slider.setPaintLabels(true);

当我移动定位箭头时,我希望在 告诉我实际值的鼠标光标。

您可以通过使用客户滑块UI 并覆盖它的paintThumb 方法来实现类似的效果。这不是你想要的,但你可以试试这个:

slider.setUI(new BasicSliderUI(slider) {
    public void paintThumb(Graphics g) {
        super.paintThumb(g);
        g.setColor(Color.RED);
        g.drawString(slider.getValue() + "", thumbRect.x, thumbRect.y + thumbRect.height);
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 2023-03-23
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多