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都可以使用。