swing组件和容器

一、 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

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

2 构造函数:

    l JFrame()

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

2 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

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

2 构造函数:

    JDialog(Dialogowner,Stringtitle, boolean modal)

    JDialog(Frameowner,Stringtitle, boolean modal)

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

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

2 JDialog常用方法
    n setSize(int width, int height)— 设置对话框的大小
    n getContentPane()—获取顶层容器的内容面板
    n add(Component comp)—往内容面板添加组件
    n setLayout(LayoutManager mgr)—设置布局方式,默认为BorderLayout

b) JOptionPane

2 提供一些现成的、各种常用的标准对话框(有模式的对话框)
2JOptionPane类里静态方法众多,但几乎所有静态方法都遵循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。


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


    n YES_OPTION


    n NO_OPTION


    n CANCEL_OPTION


    n OK_OPTION


    n CLOSED_OPTION

3.JLabel

2 构造函数;


    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(右对齐),

2 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

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


2 构造函数:

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)。
 


2 常用方法:


    getText()—获取编辑框的文本信息(String 类型)
    setText(String text)—设置文本信息
    setEditable(boolean b)—设置是否可编辑

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

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

    JButton——命令式事件 ·
    JCheckBox、JRadioButton—选择状态发生变化

2 构造函数:


    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指定组件是否被选中

 JCheckBox、JRadioButton常用方法:
    setSelected(boolean b)—设置组件的选中状态
    isSelected()—判断组件时否被选中

  与ButtonGroup对象配合使用可创建一组按钮,一次只能选择其中的一个按钮。ButtonGroup提供的一个空的构造方法,使用成员方法add(AbstractButton b)添加单选按钮( JRadioButton是AbstractButton的子类)
 2 如果需要把多个JRadioButton排成一排或者一列,可以创建一个布局为GridLayout或者BoxLayout的JPanel。


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


           jpanel.add(JRadioButton);

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

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


(一) JComboBox(组合框)


    2 构造函数:


        JComboBox(Object[] items)


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






    2 常用方法:


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


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


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


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


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


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

(二) JList(列表框)

2 构造函数:

    JList(Object[] listData)

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

2 常用方法:

    setSelectionMode(int selectionMode)—设置列表的选择模式。
    selectionMode常为以下常数:
        ListSelectionModel.SINGLE_SELECTION- 一次只能选择一个列表选项


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


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


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


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

(三) JTextArea (文本区域)

2 构造函数;

    JTextArea(Stringtext, int rows, int columns)

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

7.菜单编写

2 相关的类:

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

    JMenu(级联)
    JMenuItem(菜单项目)
    JCheckBoxMenuItem(选择性的菜单项目)
    JRadioButtonMenuItem(选择性的菜单项目(圆点))。


2 编程要点:


    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组件中;否则为多选效果


    2 example:MenuLookDemo

8.工具条JToolBar

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


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


2 构造函数:


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


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


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


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


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


2 编程方法:


    n 创建出JToolBar对象


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


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


example:ToolBarDemo
  1. JTabbedPane(选项卡窗格)

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

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

    构造函数:

     public JTabbedPane(int tabPlacement, int tabLayoutPolicy)
    
    
     其中Tabplacement可以是:
          JTabbedPane.TOP(表头在上面)
          JTabbedPane.BOTTOM(表头在下面)
          JTabbedPane.LEFT(表头在左面)
          JTabbedPane.RIGHT(表头在右面)。
    
    
      TablayoutPolicy可以是
    
    
         2 JTabbedPane.WRAP_TAB_LAYOUT(表头不产生SCROLL效果)
    
    
         2 JTabbedPane.SCROLL_TAB_LAYOUT(表头产生SCROLL效果)
    

    2 编程方法:

       创建出JTabbedPane类的对象;
    
      调用addTab()方法加入一个页面组件(JPanel或其子类);
    
    
      最后将JTabbedPane类的对象加入到顶级容器的ContentPane中。
    
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值