Java如何创建带有自定义标签的JSlider?

该JSlider的setLabelTable()方法可以让你定义了一个自定义标签JSlider。标签表是一个Hashtable包含Integer数字作为键和一个JLabel组件作为其值的表。整数键对应于JSlider将自定义标签的刻度。

package org.nhooo.example.swing;

import javax.swing.*;

import java.awt.*;

import java.util.Hashtable;

public class JSliderCustomLabel extends JPanel {

    public JSliderCustomLabel() {

        initializeUI();

    }

    private void initializeUI() {

        setLayout(new BorderLayout());

        setPreferredSize(new Dimension(500, 200));

        JSlider slider = new JSlider(JSlider.VERTICAL, 0, 40, 0);

        slider.setMinorTickSpacing(1);

        slider.setMajorTickSpacing(5);

        slider.setPaintTicks(true);

        Hashtable<Integer, JLabel> labels = new Hashtable<>();

        labels.put(0, new JLabel("Freezing"));

        labels.put(15, new JLabel("Cold"));

        labels.put(25, new JLabel("Warm"));

        labels.put(35, new JLabel("Hot"));

        slider.setLabelTable(labels);

        slider.setPaintLabels(true);

        add(slider, BorderLayout.CENTER);

    }

    public static void showFrame() {

        JPanel panel = new JSliderCustomLabel();

        JFrame frame = new JFrame("JSlider Custom Label");

        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        frame.setContentPane(panel);

        frame.pack();

        frame.setVisible(true);

    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {

            public void run() {

                JSliderCustomLabel.showFrame();

            }

        });

    }

}

上面的示例的屏幕截图是:

以上是 Java如何创建带有自定义标签的JSlider? 的全部内容, 来源链接: utcz.com/z/340718.html

回到顶部