• java中的图形界面1(J2SE入门12)


    java中的图形界面

    GUI,图形化的用户接口,为了人机交互使用的。

    构造图形界面的步骤

    1,选择一个容器

    2,设置容器的布局管理器

    3,向容器添加组件

    4,添加事件的监听

    容器(Container)用于管理其他的组件的对象,组件必须放到容器里。

    JFrame,这是一个最顶层的窗体容器,所有其他的组件必须放在顶层容器里。

    JDialog对话框容器,他要依附于其父组件,他不是一个顶层容器。

    JPanel,他不是顶层容器,必须放在顶层容器中,任何一个容器都有add()方法,Panel面板是透明的(默认),他也是一个组件。

    布局管理:对于任何一个容器类中都有setLayout()方法,用容器对象调用这个方法,来设置容器的布局管理器(LayoutManager这是一个接口,所有布局管理器都实现了这个接口)。

    可用的布局管理器:

    FlowLayout,流式布局管。Panel的默认布局管理就是FlowLayout。

    BorderLayout,按方位进行布局管理,(North,South,East,West,Middle)不明确指定,就会默认加载在中间(Middle),add(Component comp,String place)这个方法是在指定的位置添加组件。

    GridLayout,网格布局,通过行列,间距,来用网格分割,把组件放入如网格中,先行后列摆放组件。

    CardLayout,卡片布局,面板重叠放置。

    GridBogLayout,组件可以跨行跨列的网格布局。

    注意:一定要在图形界面都其他功能都设置好之后才能设置可见性

    JButton :按钮

    JTextField:单行文本域

    JTextArea:多行文本区

    JScrollPane:滚动窗体

    JComboBox:下拉选择框

    JRadioButton:单选按钮

    JCheckBox:多选按钮

    JList:多行列表

    JLabel:标签

    JPasswordField:密码输入框

    JEditorPane:显示结构化文档

    Border:边框

    JMenuBar:菜单条

    JMenu:菜单

    JMenuItem:菜单项

    JPopupMenu:弹出式菜单

    JSlider:滑动条

    JProgressBar:进度条

    JTabbedPane:分层面板

    JSplitPane:分隔面板

    JToolBar:工具条

    JFileChooser:文件选择器

    JColorChooser:颜色选择器

    显示对话框 

    JOptionPane 里面有很多静态方法可以弹出对话框

    awt事件模型(观察者模式)(重点)

    事件模型中,包括事件源对象事件处理者(事件监听者对象),事件对象

    事件源和事件处理者之间建立了授权关系,也就是在事件源类中有一个事件处理者的对象作为属性,也可能是一个事件处理者的集合

           

              事件对象

    事件源――――――――〉事件处理者

    这就是事件模型的机制,也就是由事件源对象发送一个消息(事件对象),然后事件处理者调用相应的方法处理事件

    在事件监听器接口中定义的方法,都要以事件对象为参数

    一个事件源可以注册多个同类型的监听器,也可以注册多种多个事件监听器,一个事件监听器也可以为多个事件源服务。

    首先了解一下什么是发消息:A,B,C三个类,分别作为A事件源,B事件处理者,C事件对象。在A类中有一个B类的属性或者是一个内容为B类对象的集合,也就是事件源和事件处理者之间的建立了授权关系,在B类需要实现一个自定义的接口,这个自定义的接口继承了EventListener,EventListener接口中没有定义任何方法,这只是一个标记接口。实现在自定义接口中定义好的用于事件处理的方法,C类要继承EventObject类。这些方法是以事件对象为参数的b(C c),而后在A类a(C c)方法中使用B类的对象调用B类中的b(C c)方法,并把事件对象作为参数,并在main方法中用A类的对象调用了a(c)方法,这也就叫做A类对象给B类发送了消息。

    也就是说事件源对象间接调用了事件监听器的方法,并以事件对象为实参传到事件监听器的方法中,要就叫事件源给事件监听器的方法发了一个消息(事件对象)

  • 相关阅读:
    bootstap 折叠
    AtCoder AGC019E Shuffle and Swap (DP、FFT、多项式求逆、多项式快速幂)
    Codeforces Gym 101630J Journey from Petersburg to Moscow (最短路)
    BZOJ 4042 Luogu P4757 [CERC2014]Parades (树形DP、状压DP)
    BZOJ 2734 [HNOI2012]集合选数 (状压DP、时间复杂度分析)
    BZOJ 2759 一个动态树好题 (LCT)
    Codeforces 1205C Palindromic Paths (交互题、DP)
    getopt实现传参自动识别
    powershell笔记
    bat语法需要注意的地方
  • 原文地址:https://www.cnblogs.com/syxchina/p/2197229.html
Copyright © 2020-2023  润新知