简介

简单

code

/*
 * @Author: your name
 * @Date: 2020-11-05 10:21:52
 * @LastEditTime: 2020-11-05 10:45:16
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: /java/calcu/SliderFrame.java
 */
package calcu;

import java.awt.*;
import java.util.*;

import javax.swing.*;
import javax.swing.event.*;

public class SliderFrame extends JFrame {
    private JPanel sliderPanel;
    private JTextField textField;
    private ChangeListener listener;

    public static void main(String[] args) {
        SliderFrame t = new SliderFrame();
        t.setTitle("ImageTest");
        t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        t.setVisible(true);
    }

    public SliderFrame() {
        sliderPanel = new JPanel();
        sliderPanel.setLayout(new GridBagLayout());

        // common listener for all sliders
        listener = event -> {
            JSlider source = (JSlider) event.getSource();
            textField.setText("" + source.getValue());
        };
        // add a plain slider
        JSlider slider = new JSlider();

        addSlider(slider, "Plain");

        // add a slider with major and minor ticks

        slider = new JSlider();
        slider.setPaintTicks(true);

        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);
        addSlider(slider, "Ticks");

        // add a slider with no track

        slider = new JSlider();
        slider.setPaintTicks(true);
        slider.setSnapToTicks(true);
        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);
        addSlider(slider, "Snap to ticks");

        // add a slider with no track

        slider = new JSlider();
        slider.setPaintTicks(true);
        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);
        slider.setPaintTicks(false);
        addSlider(slider, "No track");

        // add an inverted slider

        slider = new JSlider();
        slider.setPaintTicks(true);
        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);
        slider.setInverted(true);
        addSlider(slider, "Inverted");

        // add a slider with numeric labels

        slider = new JSlider();
        slider.setPaintTicks(true);
        slider.setPaintLabels(true);
        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);
        addSlider(slider, "Labels");

        // add a slider with alphabetic labels

        slider = new JSlider();
        slider.setPaintLabels(true);
        slider.setPaintTicks(true);
        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);

        Dictionary<Integer, Component> labelTabel = new Hashtable<>();
        labelTabel.put(0, new JLabel("A"));
        labelTabel.put(20, new JLabel("B"));
        labelTabel.put(40, new JLabel("C"));
        labelTabel.put(60, new JLabel("D"));
        labelTabel.put(80, new JLabel("E"));
        labelTabel.put(100, new JLabel("F"));

        slider.setLabelTable(labelTabel);
        addSlider(slider, "Custon labels");

        // add a slider with icon labels because of no icons don't to show these

        // slider = new JSlider();
        // slider.setPaintTicks(true);
        // slider.setPaintLabels(true);
        // slider.setSnapToTicks(true);
        // slider.setMajorTickSpacing(20);
        // slider.setMinorTickSpacing(5);

        // add the text field that displays the slider value
        textField = new JTextField();
        add(sliderPanel, BorderLayout.CENTER);
        add(textField, BorderLayout.SOUTH);
        pack();
    }

    public void addSlider(JSlider s, String description) {
        s.addChangeListener(listener);
        JPanel panel = new JPanel();
        panel.add(s);
        panel.add(new JLabel(description));
        panel.setAlignmentX(Component.LEFT_ALIGNMENT);
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.gridy = sliderPanel.getComponentCount();
        gbc.anchor = GridBagConstraints.WEST;
        sliderPanel.add(panel, gbc);

    }
}

posted on 2020-11-05 10:47  HDU李少帅  阅读(114)  评论(0编辑  收藏  举报