您的位置:首页 > 编程语言 > Java开发

java中用户界面组件中滑动条的应用

2016-09-23 20:07 190 查看



总结:学会使用GridBagLayout包,JSlider中的方法
void setPaintTicks(boolean b) 如果为true,则显示尺标
void setMajorTickSpacing(int units)
void setMinorTickSpacing(int units)
用给定的滑动条单位的倍数设置大小尺标
void setLabelTable(Dictionary table)
设置用于作为标尺标签的组件。表中每一个键/值对都采用new
Integer(value)/component的格式
void setSnapToTick(boolean b)
每次调整后滑块都要对齐最接近的标尺处
void setPaintTrack(boolean b)
显示滑块滑动的轨迹

java.awt

类 GridBagConstraints

java.lang.Object
java.awt.GridBagConstraints


所有已实现的接口:
Serializable, Cloneable

public class GridBagConstraints

extends Object
implements Cloneable,
Serializable

GridBagConstraints
类指定使用
GridBagLayout

类布置的组件的约束。

例子源代码:

package silderFrame;

import java.awt.BorderLayout;

import java.awt.*;

import java.awt.TextField;

import java.util.Dictionary;

import java.util.Hashtable;

import javax.swing.*;

import javax.swing.event.*;

public class SliderFrameDemo {

public static void main(String[] args) {

SliderFrame sf=new SliderFrame();

sf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

sf.setTitle("SliderFrame");

sf.setVisible(true);

}

}

class SliderFrame extends JFrame{

private ChangeListener listener;

private JTextField textField;

private JPanel sliderPanel;

public SliderFrame(){

//setSize(400,300);

sliderPanel=new JPanel();

sliderPanel.setLayout(new GridBagLayout());

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.setMajorTickSpacing(20);

slider.setMinorTickSpacing(5);

slider.setPaintTicks(true);

addSlider(slider,"Ticks");

slider=new JSlider();

slider.setMajorTickSpacing(20);

slider.setMinorTickSpacing(5);

slider.setSnapToTicks(true);

slider.setPaintTicks(true);

addSlider(slider,"Snap to ticks");

slider=new JSlider();

slider.setMajorTickSpacing(20);

slider.setMinorTickSpacing(5);

slider.setPaintTicks(true);

slider.setPaintTrack(false);

addSlider(slider,"No Track");

slider=new JSlider();

slider.setMajorTickSpacing(20);

slider.setMinorTickSpacing(5);

slider.setPaintTicks(true);

slider.setInverted(true);

addSlider(slider,"Inverted");

//设置滑动条

slider=new
JSlider(0,100,50);

//上述滑动条没20个单位显示一个大标尺标记,没5个单位显示一个小标尺标记

slider.setMajorTickSpacing(20);

slider.setMinorTickSpacing(5);

//将标记显示出来

slider.setPaintTicks(true);

//移动滑动条后自动移到最接近标尺处

slider.setSnapToTicks(true);

//为滑动条显示一个标记标签0,20,40,60,80,100

slider.setPaintLabels(true);

addSlider(slider,"labels");

slider=new JSlider();

slider.setMajorTickSpacing(20);

slider.setMinorTickSpacing(5);

slider.setPaintTicks(true);

slider.setPaintLabels(true);

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,"Custom labels");

//显示一个垂直的滑动条

//add the text field that displays the slider value

textField=new JTextField();

add(sliderPanel);

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 Label(description));

//设置组件垂直对齐

panel.setAlignmentX(Component.LEFT_ALIGNMENT);

GridBagConstraints gbc=new GridBagConstraints();

//GridBagConstraints 类指定使用 GridBagLayout
类布置的组件的约束。

gbc.gridy=sliderPanel.getComponentCount();

gbc.anchor=GridBagConstraints.WEST;

sliderPanel.add(panel,gbc);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: