18.带刻度的滚动条

效果:

  

package com.lvshitech.gui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class JSliderDemo extends JFrame implements ChangeListener {
	
	JLabel l1;
	int v1, v2;
	JSlider sl1, sl2;
	
	public static void main(String[] args) {
		new JSliderDemo();
	}
	
	public JSliderDemo() {
		super("使用JSlider");
		Container container = getContentPane();
		container.setBackground(Color.white);
		
		// 创建垂直滚动条
		sl1 = new JSlider(JSlider.VERTICAL, 100, 200, 100);
		sl1.setMajorTickSpacing(50);	// 设置大刻度间隔
		sl1.setMinorTickSpacing(10);	// 设置小刻度间隔
		sl1.setPaintTicks(true);		// 显示刻度
		sl1.setPaintLabels(true);		// 显示标注
		sl1.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
		sl1.addChangeListener(this);	// 注册监听器
		
		// 创建水平滚动条
		sl2 = new JSlider();
		sl2.setBorder(BorderFactory.createTitledBorder("JSlider(具有带标题的边框、刻度和标注)"));
		sl2.setMajorTickSpacing(20);
		sl2.setMinorTickSpacing(5);
		sl2.setPaintTicks(true);
		sl2.setPaintLabels(true);
		sl2.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
		sl2.addChangeListener(this);
		
		// 标签
		v1 = 100;
		v2 = 50;
		l1 = new JLabel("垂直滚动条的值为:" + v1 + ",水平滚动条的值为:" + v2);
		l1.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
		
		// 添加到容器
		container.add(sl1, BorderLayout.WEST);
		container.add(sl2, BorderLayout.SOUTH);
		container.add(l1, BorderLayout.CENTER);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack();
		setVisible(true);
	}
	
	// 改变滚动条的值时触发
	@Override
	public void stateChanged(ChangeEvent e) {
		if (e.getSource() == sl1) {
			v1 = ((JSlider)e.getSource()).getValue();
		}
		if (e.getSource() == sl2) {
			v2 = ((JSlider)e.getSource()).getValue();
		}
		l1.setText("垂直滚动条的值为:" + v1 + ",水平滚动条的值为:" + v2);
	}
}

 

posted @ 2018-01-16 22:04  半生戎马,共话桑麻、  阅读(201)  评论(0)    收藏  举报
levels of contents