java jslider事件_Swing-JSlider用法-入门

import java.awt.*;importjava.util.Dictionary;importjava.util.Hashtable;import javax.swing.*;import javax.swing.event.*;public class JSliderDemo extendsJFrame {/*** source code from 《java核心技术 卷1 基础知识》 P340*/

int DEFAULT_WIDTH = 350;int DEFAULT_HEIGHT = 450;privateJPanel sliderPanel;privateJTextField textField;private ChangeListener changeListener;//监听器

publicJSliderDemo() {

setTitle("JSliderDemo");

setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);//构造一个监听器,响应事件

changeListener = newChangeListener() {public voidstateChanged(ChangeEvent event) {

System.out.println("stateChanged called");//update textField when the slider value changes

if (event.getSource() instanceofJSlider) {

JSlider source=(JSlider) event.getSource();

textField.setText("" +source.getValue());

System.out.println(source.getValue());

}

}

};//添加sliderPanel,它包含个JSlider

sliderPanel = newJPanel();

sliderPanel.setLayout(newFlowLayout(FlowLayout.LEFT));//add textField that displays the slider value

textField = newJTextField();

add(sliderPanel, BorderLayout.CENTER);

add(textField, BorderLayout.SOUTH);//add Plain slider

JSlider slider = newJSlider();

addSlider(slider,"Plain");//add Ticks slider

slider = newJSlider();

slider.setPaintTicks(true);//显示标尺

slider.setMajorTickSpacing(20); //20一大格

slider.setMinorTickSpacing(5);//5一小格

addSlider(slider, "Ticks");//add SnapToTicks slider

slider = newJSlider();

slider.setPaintTicks(true);//显示标尺

slider.setSnapToTicks(true);//强制对齐到标尺

slider.setMajorTickSpacing(20);//20一大格

slider.setMinorTickSpacing(5);//5一小格

addSlider(slider, "SnapToTicks");//add NoTrack slider

slider = newJSlider();

slider.setPaintTicks(true);//显示标尺

slider.setMajorTickSpacing(20);//20一大格

slider.setMinorTickSpacing(5);//5一小格

slider.setPaintTrack(false);//不显示数轴

addSlider(slider, "NoTrack");//add InvertedSlider

slider = newJSlider();

slider.setPaintTicks(true);//显示标尺

slider.setMajorTickSpacing(20);//20一大格

slider.setMinorTickSpacing(5);//5一小格

slider.setInverted(true);//反转slider方向

addSlider(slider, "InvertedSlider");//add Slider with labels

slider = newJSlider();

slider.setPaintTicks(true);//显示标尺

slider.setPaintLabels(true);//添加数字标签

slider.setMajorTickSpacing(20);//20一大格

slider.setMinorTickSpacing(5);//5一小格

addSlider(slider, "Labels");//add Slider with alphabetic labels

slider = newJSlider();

slider.setPaintTicks(true);//显示标尺

slider.setPaintLabels(true);

slider.setMajorTickSpacing(20);//20一大格

slider.setMinorTickSpacing(5);//5一小格

Dictionary labelTable = new Hashtable();

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,"CustomLabels");//add IconsSlider

slider = newJSlider();

slider.setPaintTicks(true);//显示标尺

slider.setPaintLabels(true);

slider.setSnapToTicks(true);

slider.setMajorTickSpacing(20);//20一大格

slider.setMinorTickSpacing(20);//20一小格

labelTable= new Hashtable();

labelTable.put(0, new JLabel(new ImageIcon("nine.gif")));

labelTable.put(20, new JLabel(new ImageIcon("ten.gif")));

labelTable.put(40, new JLabel(new ImageIcon("jack.gif")));

labelTable.put(60, new JLabel(new ImageIcon("queen.gif")));

labelTable.put(80, new JLabel(new ImageIcon("king.gif")));

labelTable.put(100, new JLabel(new ImageIcon("ace.gif")));

slider.setLabelTable(labelTable);

addSlider(slider,"IconLabels");

}/** 添加一个slider,并绑定监听器*/

private voidaddSlider(JSlider slider, String description) {

slider.addChangeListener(changeListener);

JPanel panel= newJPanel();

panel.add(slider);

panel.add(newJLabel(description));

sliderPanel.add(panel);

System.out.println("addSlider called");

}public static voidmain(String[] args) {//TODO Auto-generated method stub//创建窗体并指定标题

JSliderDemo frame = newJSliderDemo();//关闭窗体后退出程序

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//自动适配所有控件大小//frame.pack();//设置窗体位置在屏幕中央

frame.setLocationRelativeTo(null);//显示窗体

frame.setVisible(true);

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值