?? testjslider.java
字號:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
/**
* Description:
* <br/>Copyright (C), 2005-2008, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class TestJSlider
{
JFrame mainWin = new JFrame("滑動條示范");
Box sliderBox = new Box(BoxLayout.Y_AXIS);
JTextField showVal = new JTextField();
ChangeListener listener;
public void init()
{
//定義一個監聽器,用于監聽所有滑動條
listener = new ChangeListener()
{
public void stateChanged(ChangeEvent event)
{
//取出滑動條的值,并在文本中顯示出來
JSlider source = (JSlider) event.getSource();
showVal.setText("當前滑動條的值為:" + source.getValue());
}
};
//-----------添加一個普通滑動條-----------
JSlider slider = new JSlider();
addSlider(slider, "普通滑動條");
//-----------添加保留區為30的滑動條-----------
slider = new JSlider();
slider.setExtent(30);
addSlider(slider, "保留區為30");
//-----------添加帶主、次刻度的滑動條,并設置其最大值,最小值-----------
slider = new JSlider(30 , 200);
//設置繪制刻度
slider.setPaintTicks(true);
//設置主、次刻度的間距
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
addSlider(slider, "有刻度");
//-----------添加滑塊必須停在刻度處滑動條-----------
slider = new JSlider();
//設置滑塊必須停在刻度處
slider.setSnapToTicks(true);
//設置繪制刻度
slider.setPaintTicks(true);
//設置主、次刻度的間距
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
addSlider(slider, "滑塊停在刻度處");
//-----------添加沒有滑軌的滑動條-----------
slider = new JSlider();
//設置繪制刻度
slider.setPaintTicks(true);
//設置主、次刻度的間距
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
//設置不繪制滑軌
slider.setPaintTrack(false);
addSlider(slider, "無滑軌");
//-----------添加方向反轉的滑動條-----------
slider = new JSlider();
//設置繪制刻度
slider.setPaintTicks(true);
//設置主、次刻度的間距
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
//設置方向反轉
slider.setInverted(true);
addSlider(slider, "方向反轉");
//-----------添加繪制默認刻度標簽的滑動條-----------
slider = new JSlider();
//設置繪制刻度
slider.setPaintTicks(true);
//設置主、次刻度的間距
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
//設置繪制刻度標簽,默認繪制數值刻度標簽
slider.setPaintLabels(true);
addSlider(slider, "數值刻度標簽");
//-----------添加繪制Label類型的刻度標簽的滑動條-----------
slider = new JSlider();
//設置繪制刻度
slider.setPaintTicks(true);
//設置主、次刻度的間距
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
//設置繪制刻度標簽
slider.setPaintLabels(true);
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"));
//指定刻度標簽,標簽是JLabel
slider.setLabelTable(labelTable);
addSlider(slider, "JLable標簽");
//-----------添加繪制Label類型的刻度標簽的滑動條-----------
slider = new JSlider();
//設置繪制刻度
slider.setPaintTicks(true);
//設置主、次刻度的間距
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
//設置繪制刻度標簽
slider.setPaintLabels(true);
labelTable = new Hashtable<Integer, Component>();
labelTable.put(0, new JLabel(new ImageIcon("ico/0.GIF")));
labelTable.put(20, new JLabel(new ImageIcon("ico/2.GIF")));
labelTable.put(40, new JLabel(new ImageIcon("ico/4.GIF")));
labelTable.put(60, new JLabel(new ImageIcon("ico/6.GIF")));
labelTable.put(80, new JLabel(new ImageIcon("ico/8.GIF")));
//指定刻度標簽,標簽是ImageIcon
slider.setLabelTable(labelTable);
addSlider(slider, "Icon標簽");
mainWin.add(sliderBox, BorderLayout.CENTER);
mainWin.add(showVal, BorderLayout.SOUTH);
mainWin.pack();
mainWin.setVisible(true);
}
//定義一個方法,用于將滑動條添加到容器中
public void addSlider(JSlider slider, String description)
{
slider.addChangeListener(listener);
Box box = new Box(BoxLayout.X_AXIS);
box.add(new JLabel(description + ":"));
box.add(slider);
sliderBox.add(box);
}
public static void main(String[] args)
{
new TestJSlider().init();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -