swing 组价和容器——java swing 组件和技术(中)

固执地去写完自己剩下的java swing总结,相信时间会见证我的成长。

一、 swing组件和容器概览

swing 组价和容器——java swing 组件和技术(中)

1.顶层容器(JFrame,JDialog,JApplet)

    JFrame—框架,主要用来设计应用程序的图像界面

    JDialog—对话框,通常用来设计具有依赖关系的窗口

    JApplet—小应用程序,主要用来设计嵌入网页中运行的java程序

2.一般容器

    普通容器(JPanel、JScrollPane、JToolbar、JSplitPane、JTabbedPane)

        JPanel—面板,通常只有背景颜色的普通容器

        JScrollPane—滚动窗格,具有滚动条

        JToolbar—工具条,通常将多个组件排成一排或者一列

        JSplitPane—分裂窗格,用来装两个组件的容器

        JTabbedPane—选项卡窗格,允许多个组件共享相同的界面空间

    专用容器(JLayeredPane、JRootPane 、JInternalFrame)

        JLayeredPane—分层窗格,给窗格增加了深度的概念

        JRootPane—根窗格,一般是自动创建的容器

        JInternalFrame—内部窗格,可以在一个窗口内显示若干个类似于框架的窗口

3.基本控件

    (JButton、JCombobox、JList、JMenu、JSlider、JTextField)

4.不可编辑信息组件

    (JLabel、JProgressBar、JToolTip等

5.可编辑组件

    (JColorChooser、JFileChooser、Jtabel、JTextArea、JTree等)

二、 常用的swing组件和容器

1.JFrame

    ² 顶层容器,默认不可见;默认布局方式为BorderLayout

    ² 构造函数:

        l JFrame()

        l JFrame(String title)//title 为框架的标题内容

    ² JFrame常用方法

        l setDefaultCloseOperation(int operation)—设置关闭框架的行为

        参数operation一般是JFrame. EXIT_ON_CLOSE,表示关闭框架时,则退出程序

        l setSize(int width, int height)— 设置框架的大小

        l setVisible(boolean b)—设置框架是否可见,默认为false

        l getContentPane()—获取顶层容器的内容面板

        l add(Component comp)—往内容面板添加组件

        l setLayout(LayoutManager mgr)—设置布局方式,默认为BorderLayout

example:JDialog 和 JOptionPane的demo

未命名

2.JDialog 和 JOptionPane

a) JDialog

    ² 在已有的窗口上创建对话框,可以使用此类创建自定义的对话框

    ² 构造函数:

        JDialog(Dialogowner,Stringtitle, boolean modal)

        JDialog(Frameowner,Stringtitle, boolean modal)

        参数:owner—指定对话框的父窗口

                title—对话框的标题

                modal—对话框的模式(true为“有模式对话框”,false为“无模式对话框”

    ² JDialog常用方法

        n setSize(int width, int height)— 设置对话框的大小

        n getContentPane()—获取顶层容器的内容面板

        n add(Component comp)—往内容面板添加组件

        n setLayout(LayoutManager mgr)—设置布局方式,默认为BorderLayout

b) JOptionPane

    ² 提供一些现成的、各种常用的标准对话框(有模式的对话框)

    ²JOptionPane类里静态方法众多,但几乎所有静态方法都遵循showXxxDialog()的形式,如下:

方法名    

描述

showConfirmDialog()

显示确认对话框

showInputDialog()

显示输入文本对话框

showMessageDialog()

显示信息对话框

showOptionDialog()

显示选择性的对话框

        这四种方法的参数都遵循一致的模式:

        ①ParentComponent:指示对话框的父窗口对象,一般为当前窗口。也可以为null即采用缺省的Frame作              为父窗口,此时对话框将设置在屏幕的正中。

        ②message:指示要在对话框内显示的描述性的文字

        ③String title:窗口标题

        ④Component:在对话框内要显示的组件(如按钮)

        ⑤Icon:在对话框内要显示的图标

        ⑥messageType:定义 message 的样式,一般可以为如下的值

                n ERROR_MESSAGE

                n INFORMATION_MESSAGE

                n WARNING_MESSAGE

                n QUESTION_MESSAGE

                n PLAIN_MESSAGE

        ⑦ optionType:定义在对话框的底部显示的选项按钮的集合。一般可以为

                n DEFAULT_OPTION

                n YES_NO_OPTION

                n YES_NO_CANCEL_OPTION

                n OK_CANCEL_OPTION。

    ² 当showXxxDialog 方法返回整数时,可能的值为:

        n YES_OPTION

        n NO_OPTION

        n CANCEL_OPTION

        n OK_OPTION

        n CLOSED_OPTION

3.JLabel

    ² 构造函数;

        n JLabel()

        n JLabel(String text)

        n JLabel(Icon image)

        n JLabel(String text, Icon icon, int horizontalAlignment)

其中参数text为JLabel的文字信息,image为JLabel的图标,horizontalAlignment为文字与图标在水平方向上的对齐方式,常见的取值有常量 JLabel.LEFT(左对齐),JLabel.CENTER(中对齐), JLabel.RIGHT(右对齐),

    ² JLabel常用方法:

        n setText(String text)—设置文字信息

        n setIcon(Icon image)—设置JLabel的图标

        n setHorizontalAlignment(int alignment)—设置文字与图标在水平方向的对齐方式

        n setVerticalAlignment(int alignment)—设置文字与图标在竖直方向的对齐方式

        n setToolTipText(String text)—在JLabel上停留时出现的提示信息

4.JTextField 和 JPasswordField

    ² 都是用来编辑单行文本,JTextField可以直接看到输入的字符,JPasswordField将输入的字符表示成”*”

    ² 构造函数:

JTextField()

JPasswordField()

JTextField(String text)

JPasswordField(String text)

JTextField(int columns)

JPasswordField(int columns)

JTextField(String text, int columns)

JPasswordField(String text, int columns)

    参数text指定文本编辑框显示的初始文本,columns为文本编辑框的宽度(大于0)。

       imageimage

    ² 常用方法:

        getText()—获取编辑框的文本信息(String 类型)

        setText(String text)—设置文本信息

        setEditable(boolean b)—设置是否可编辑

5.JButton、JCheckBox(复选框)和JRadioButton(单选按钮)

    ² 触击式组件(单击这三个组件,都能触发特定的的事件。)

        JButton——命令式事件 ·

        JCheckBox、JRadioButton—选择状态发生变化

    ² 构造函数:

        JButton()

        JButton(Icon icon)

        JButton(String text)

        JButton(Stringtext,Iconicon)

JCheckBox()

JRadioButton()

JCheckBox(Stringtext,Iconicon, boolean selected)

JRadioButton(Stringtext,Iconicon, boolean selected)

参数text为指定组件显示的文本信息,icon为指定组件的图标,selected指定组件是否被选中

imageimageimage

    ² JCheckBox、JRadioButton常用方法:

        setSelected(boolean b)—设置组件的选中状态

        isSelected()—判断组件时否被选中

     ² 与ButtonGroup对象配合使用可创建一组按钮,一次只能选择其中的一个按钮。ButtonGroup提供的一个空的构造方法,使用成员方法add(AbstractButton b)添加单选按钮( JRadioButton是AbstractButton的子类)

     ² 如果需要把多个JRadioButton排成一排或者一列,可以创建一个布局为GridLayout或者BoxLayout的JPanel。

        如:JPanel jpanel = new JPanel(new GridLayout(0,1));//排成一列

               jpanel.add(JRadioButton);

6.JComboBox(组合框),JList,JTextArea和JScrollPane

    ² 用于显示多行文本的组件

    (一) JComboBox(组合框)

        ² 构造函数:

            JComboBox(Object[] items)

            参数items为组合框的各个选项

image

        ² 常用方法:

            setEditable(boolean aFlag)—设置组合框是否可以自行输入一行文本信息,默认为false。当为false时,只能选择组合框中的某个选项

            setMaximumRowCount(int count)—设置显示的最大行数

            setSelectedIndex(int anIndex)—选择索引第anIndex+1处的选项

            getSelectedIndex()—返回列表中与给定项匹配的第一个选项的下标值

            getSelectedItem()—返回当前所选项。

            getSelectedObjects()—返回包含所选项的数组。

(二) JList(列表框)

    ² 构造函数:

        JList(Object[] listData)

        参数listData为列表框的各个选项

    ² 常用方法:

        setSelectionMode(int selectionMode)—设置列表的选择模式。

        selectionMode常为以下常数:

            ListSelectionModel.SINGLE_SELECTION- 一次只能选择一个列表选项

            ListSelectionModel.SINGLE_INTERVAL_SELECTION- 一次只能选择一个连续间隔

            ListSelectionModel.MULTIPLE_INTERVAL_SELECTION –一次可选择一个或多个选项。此模式是默认设置。

        setSelectedIndex(int index)—设置被选中的选项

        getSelectedIndex()—返回最小的选择单元的索引

(三) JTextArea (文本区域)

    ² 构造函数;

        JTextArea(Stringtext, int rows, int columns)

        构造具有指定文本text、rows行columns列的 TextArea

7.菜单编写

    ² 相关的类:

        通过JMenuBar类(利用setJMenuBar()方法加入窗口中)

        JMenu(级联)

        JMenuItem(菜单项目)

        JCheckBoxMenuItem(选择性的菜单项目)

        JRadioButtonMenuItem(选择性的菜单项目(圆点))。

    ² 编程要点:

        a)、产生快捷键

            mnuFileNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));//快捷键alt+1

        b)、添加分割条

          mnuFile.addSeparator();

        c)、给菜单加上图标

            mnuFileNew.setIcon(newImageIcon("new.gif"));

       d)、给菜单加上助记符

            mnuFile.setMnemonic('F'); //alt+F

        e)、要使得多个JRadioButtonMenuItem项目产生单选的效果,可以将它们放入一个ButtonGroup组件中;否则为多选效果

        ² example:MenuLookDemo

image

8.工具条JToolBar

    ² 在Swing中的窗口工具条是由JToolBar来实现,它也是一种容器并按照行或列对组件(它们一般为按钮)进行分组。

    ² 缺省时为水平方向但可以使用SwingConstants. HORIZONTAL或者SwingConstants. VERTICAL来设置其方向。

    ² 构造函数:

        n JToolBar() 创建出水平方向的工具条(缺省为HORIZONTAL)。

        n JToolBar(int orientation) 创建出指定方向的工具条。

        n JToolBar(String name) 创建出指定名称的工具条。

        n JToolBar(String name, int orientation) 创建出指定方向和名称的工具条。

    ² 工具条上的工具按钮的事件编程:
        类似于一般的按钮事件编程,可以分别为各个不同的按钮单独进行事件编程。

    ² 编程方法:

        n 创建出JToolBar对象

        n 然后采用add(Object)方法将组件(可以为按钮或其它组件)加入到工具条中。

        n 最后再将工具条加入到内容面板中

    example:ToolBarDemo

image

9. JTabbedPane(选项卡窗格)

image

    ² 特性:它表现为一组文件夹页,每个文件夹都有标题(如下)

    ² 其内的每个页面为一个JPanel类或者其子类的对象

    ² 构造函数:

        public JTabbedPane(int tabPlacement, int tabLayoutPolicy)

        其中Tabplacement可以是:

            ² JTabbedPane.TOP(表头在上面)

            ² JTabbedPane.BOTTOM(表头在下面)

            ² JTabbedPane.LEFT(表头在左面)

            ² JTabbedPane.RIGHT(表头在右面)。

         TablayoutPolicy可以是

            ² JTabbedPane.WRAP_TAB_LAYOUT(表头不产生SCROLL效果)

            ² JTabbedPane.SCROLL_TAB_LAYOUT(表头产生SCROLL效果)

    ² 编程方法:

          创建出JTabbedPane类的对象;

        l 调用addTab()方法加入一个页面组件(JPanel或其子类);

        l 最后将JTabbedPane类的对象加入到顶级容器的ContentPane中。

你可能感兴趣的:(java,java,swing,swing,swing组件和容器)