首页 > 编程语言 > 详细

java slider

时间:2020-11-05 11:39:37      阅读:48      评论:0      收藏:0      [点我收藏+]

简介

简单

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);

    }
}

java slider

原文:https://www.cnblogs.com/eat-too-much/p/13930467.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!