java基础 ---常用Swing组件

java基础 ---常用Swing组件
1、JButton(按钮)
JButton是继承AbstractButton类而来,而AbstractButton本身是一个抽象类,里面定义了许多组件设置的方法与组件事件驱动方法(Event handle),如addActionListener()、setText等,所提供的方法不下50种,可说是非常重要的一个类。事实上,AbstractButton类不公被JButton所继承,它同时还被JMenuItem、JToggleButton、JCheckBox、JRadioButton等类所
继承,提供给这些类强大且方便的功能,而且在使用上更能掌握这些组件的特性。

2、JCheckBox(多选框)
 JCheckBox与JRadioButton为JToggleButton的子类,因此它们可以使用AbstractButton抽象类里面许多好用的方法,如addItemListener()、setText()、isSelected()等等。

3、JRadioButton(单选框)
要将RadioButton改成单选,我们必须用到ButtonGroup这个类。这个类位于javax.swing这个package下面,ButtonGroup类的主要功能是:同一时间内只会有一个组件的状态为"on",其他皆为"off",也就是同一时间只有一个组件会被选取。而ButtonGroup类可被AbstractButton下面的子类所使用,最常被使用的就是JRadioButton、JradioButtonMenu、Item与JToggleButton这些组件。

4、JComboBox(下拉列表)
属性:editable设置是否可以编辑
selectedIndex通过数字标识定义当前显示项。
selectedItem标识定义当前的显示项方法。
还有很多属性,要通过多使用才能掌握。

5、JList(列表框)
JList与JCheckBox有点相似,都可以让你选择一到多个选项,较不同的是,JList的选项方式是整列选取。默认情况下列表框是无法滚动的,如果我们要有滚动的效果,必须将JList放入滚动面版中(JScrollPane),如我们在程序改为:
       contentPane.add(new JScrollPane(list1));
       contentPane.add(new JScrollPane(list2));
 如此就有滚动的效果了,若我们要有多个选项呢?在JList中有3种选择模式(Selection Mode)可供我们使用,分别是单一选择、
连续区间选择、与多重选择。我们可以在ListSelectionModel这个interface中找到这3个常数值,如下:
SINGLE_SELECTION:一次只能选择一个项目。
SINGLE_INTERVAL_SELECTION:按住[shift]键,可以对某一边续的项目作选取。
MULTIPLE_INTERVAL_SELECTION:没有任何限制。可作单一选择,连续区间选择,或对不连续的项目作多重选择(按住[Ctrl]键)。多得选择是java对JList的默认值,因此在上例中你可以在JList中作这3种模式的选择方式。

6、Slider(滑动条)
JSlider的构造函数:
JSlider():建立一个水平的JSlider对象,刻度从0-100,初始刻度为50.
JSlider(BoundedRangeModel brm):使用默认模式建立一个水平的JSlider对象.
JSlider(int orientation):建立一个自定义方向的JSlider对象,刻度从0-100,初始刻度为50.
JSlider(int min,int max):建立一个水平的JSlider对象,自定义刻度,从min-max,初始刻度为50.
JSlider(int min, int max,int value):建立一个水平的JSlider的对象,自定义刻度与初始值.
JSlider(int orientation,int min,int max,int value):建立一个自定义方向,刻度与刻度初始值的JSlider对象.
   要使用JSlider组件就不得不提到JSlider事件的处理.当用户在JSlider上滑动杆时,就会产生ChangeEvent事件,若我们要处理
ChangeEvent事件就必须实作ChangeListener界面,此界面定义了一个方法,那就stateChanged().通常我们在这个方法上会取得或置滑动杆的相关信息,例如滑动杆的延伸区(extent),最大最小值或滑动杆目前所在刻度等等。

7、JProgressBar(进度条)
当你在安装一个新软件时,系统会告知你目前软件安装的进度如何?才不会让你觉得程序好像死了,同样的,若你设计的程序所需要的运行超过2秒以上,你应该显示程序正在运行中的图标,或直接显示程序运行的进度,这样就能让用户清楚知道程序到底是死了还是继续运行,在swing中,JProgressBar组件提供了类似这样的功能,它可以簋简单地输出进度的变化情况,让你想要提供进度信息时,不再需要自行绘制绘图组件,只需要使用JProgressBar再加上几行程序设置就可以了。具体的使用方法以后用到了再进行总结。

8、JLabel(标签)
我们最常在JLabel上放置文字或图形,也因此我们常常需要调整JLabel上文字或图形。
在JLabel中,有几个方法可能是常用到的,例如setHorizontalAlignment(int alignment)与setVerticalAlignment(int alignment),分别是设置标签内组件(文字或Icon)的水平或垂直位置,而setHorizontalTextPosition(int textPosition)与setVerticalTextPosition(int textPosition)可设置文字相对于Icon的相对位置,另外,setIconTextGap(int iconTextGap)可设置标签内文字与Icon间的间距、setText(String test)与setIcon(Icon icon)可分别设置标签内的文字与Icon。

还有些对话框的使用,比如JFileChoose(文件对话框),JColorChooer(颜色选择对话框)因为暂时还没涉及到此控件的使用,只有用过后才能对其进行具体的总结。

事件的处理:
实现还是按照三个步骤来对事件进行处理
1、定义一个类设置监听器
2、覆盖监听器的方法
3、建立组件和监听器的关系
如:addActionListener("监听器的类")。

在java中提供两个方法让你知道到底是哪个组件触发了事件,那就是getSource()与getActionCommane();getActionCommand()方法是ActionEvent类所提供,而getSource()方法是EventObject类所提供,但ActionEvent类继承了EventObject类,因此这两个方法ActionEvent都可以使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章