滑块

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;

public class FirstSample{
    public static void main(String[] args){
        SliderFrame frame=new SliderFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

class SliderFrame extends JFrame{
    public SliderFrame(){
        setTitle("SliderTest");
        setSize(WIDTH,HEIGHT);
       
        sliderPanel=new JPanel();
        sliderPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
       
        listener=new
            ChangeListener(){
                public void stateChanged(ChangeEvent event){
                    JSlider source=(JSlider) event.getSource();
                    textField.setText(""+source.getValue());
                }
            };
           
        JSlider slider=new JSlider();
        addSlider(slider,"Plain");
       
        slider=new JSlider();
        slider.setPaintTicks(true);
        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);
        addSlider(slider,"Ticks");
       
        slider=new JSlider();
        slider.setPaintTicks(true);
        slider.setSnapToTicks(true);
        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);
        addSlider(slider,"Snap to ticks");
       
        slider=new JSlider();
        slider.setPaintTicks(true);
        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);
        slider.setPaintTrack(false);
        addSlider(slider,"No track");
       
        slider=new JSlider();
        slider.setPaintTicks(true);
        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);
        slider.setInverted(true);
        addSlider(slider,"Inverted");
       
        slider=new JSlider();
        slider.setPaintTicks(true);
        slider.setPaintLabels(true);
        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);
        addSlider(slider,"Labels");
       
        slider=new JSlider();
        slider.setPaintTicks(true);
        slider.setPaintLabels(true);
        slider.setMajorTickSpacing(20);
        slider.setMinorTickSpacing(5);   
        Dictionary<Integer,Component> labelTable=new Hashtable<Integer,Component>();
        labelTable.put(0, new JLabel("A"));
        labelTable.put(20, new JLabel("B"));
        labelTable.put(40, new JLabel("C"));
        labelTable.put(60, new JLabel("D"));
        labelTable.put(80, new JLabel("E"));
        labelTable.put(100, new JLabel("F"));
        slider.setLabelTable(labelTable);
        addSlider(slider,"Custom labels");
       
        slider=new JSlider();
        slider.setPaintTicks(true);
        slider.setPaintLabels(true);
        slider.setSnapToTicks(true);
        slider.setMajorTickSpacing(25);
        slider.setMinorTickSpacing(25);   
        labelTable=new Hashtable<Integer,Component>();
        labelTable.put(0, new JLabel(new ImageIcon("1.gif")));
        labelTable.put(25, new JLabel(new ImageIcon("2.gif")));
        labelTable.put(50, new JLabel(new ImageIcon("3.gif")));
        labelTable.put(75, new JLabel(new ImageIcon("4.gif")));
        labelTable.put(100, new JLabel(new ImageIcon("5.gif")));
        slider.setLabelTable(labelTable);
        addSlider(slider,"Icon labels");
       
        textField=new JTextField();
        add(sliderPanel,BorderLayout.CENTER);
        add(textField,BorderLayout.SOUTH);
    }
   
    public void addSlider(JSlider s,String description){
        s.addChangeListener(listener);
        JPanel panel=new JPanel();
        panel.add(s);
        panel.add(new JLabel(description));
        sliderPanel.add(panel);
    }
   
    public static final int WIDTH=350;
    public static final int HEIGHT=500;
   
    private JPanel sliderPanel;
    private JTextField textField;
    private ChangeListener listener;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值