zoukankan      html  css  js  c++  java
  • 9、GUI

    Java不用来写桌面应用(Eclipse是java写的),开发网站
     
    图形界面(用得少)
     
    java.awt:用到的图形类都是依赖系统图形库,抽象窗口工具集
    javax.swing:用到 的图形类都是sun自己实现的
    在java中所有的图形类都被称为组建类
    组件(compomet)的类别
    ----------| 容器
    ----------|非容器组件
     

    一、组件

    1、JFrame框架

    带边界的窗体是一个容器
    注意 :需要调用setVisible(true)方法后才会显示框架

    1、方法

    (1)设置JFrame的宽度和高度

    java.awt.Window.setSize(int width, int height);

    (2)JFrame显示在屏幕中间,如果 cnull,则此窗口将置于屏幕的中央

    java.awt.Window.setLocationRelativeTo(Component c);

    (3)关闭JFrame程序

    javax.swing.JFrame.setDefaultCloseOperation(int operation);  // EXIT_ON_CLOSE

    (4)添加组件

    java.awt.Container.add(Component comp);

    2、JDialog 对话框

    (1)创建对话框

    JDialog(Dialog owner, String title, boolean modal);

    3、JOptionPane 对话框

    (1)消息对话框
    (2)警告对话框
    (3)错误对话框
    (4)输入对话框
    (5)确认对话框
    JOptionPane.showMessageDialog(null, "错误信息提示", "标题", JOptionPane.INFORMATION_MESSAGE); 

    4、面板(Panel)

    面板也是一个容器的组件,可以在上面添加

    注意:面板不能单独使用,必须在顶层窗口中使用

    5、常用组件

    (1)JButtion 普通按钮

    按钮Button是点击时触发动作事件的组件

    (2)JRadioButton 单选按钮

    单选按钮,可以让用户从一组选项中选择一个单一条目(例如性别)

    (3)JCheckBox 复选框

    (4)JLabel 标签

    (5)JTextField 文本域

    (6)JTextArea 文本区域

    (7)JComboBox 组合框

    (8)JList 列表框

    9JmenuBar 菜单条

    JMenu菜单、JMenultem菜单项

    菜单条(MenuBar)中包含菜单(Menu),菜单中中包含菜单项(MenuItem),注意添加的顺序

    二、 布局管理器

    1、 FlowLayout 流式布局

    Jpanel容器默认的布局管理器流式布局,按照组件添加的顺序,从左到到右将组件排列在容器中.当放满一行,就开始新的一行.在FlowLayout有3个常量FlowLayout可以指定组件的对齐方式

    (1)获取水平间隙

    int getHgap() ;

    (2)设置水平间隙

    void setHgap(int hgap) ;

    (3)创建布局管理器

    FlowLayout(int align, int hgap, int vgap);  // 创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙,默认五个像素

    2、GridLayout 网格布局

    GridLyaout是以网格形式管理组件的.组件按照他们添加的顺序从左到右排列

    1、规则:

    1.行数和列数可以是0但是不能两者都为0

    2.如果一个为0另外一个不为0,那么不为0的行或列的大小就是固定的,为0的行或者列有布局管理器动态决定

    2、构造方法
    GridLayout(int rows, int cols, int hgap, int vgap);  //  创建具有指定行数和列数,水平间隔,垂直间隔的网格布局
    3、方法

    (1)行数

    int getRows();

    (2)列数

    int getColumns() ;  // 默认值是1

    (3)水平间距

    int getHgap() ;  // 默认值是0

    (4)垂直间距

    int getVgap();

    set方法设置

    3、BorderLayout边框布局

    JFrame 容器默认的布局管理器是边框布局.该管理器将容器非为东西南北中5个区域.我们使用add(Component,index)方法可以将组件添加进到BorderLayout中,index是一个常量,有5个值

    三、Java事件监听机制

    1、事件和事件源

    能够创建一个事件并触发该事件的组件称为源对象(按钮能够点击, 那么按钮就是一个源对象,按钮被点击就是一个事件)

    一个事件是事件类的实例对象。事件类的根类是java.util.EventObject

    事件对象包含事件相关的属性,可以使用EventObject类中的实例方法getSource获得事件的源对象

    2、 监听器

    Java中,对象表示的每个事件都是由java.util中EventObject类的子类

    3、事件处理

    Java对组件都有对应的事件监听器,和添加事件监听器方法

    4、 窗口事件

    Window 对象是一个顶层窗口。窗口(Window)对应的事件叫做窗口事件(WindowEvent),任何窗口(Window)以及窗口的子类都可能触发窗口事件

    (1)Window添加窗口事件(WindowEvent)监听器的方法

    void addWindowListener(WindowListener l)  // 添加指定的窗口侦听器,以从此窗口接收窗口事件

    监听Window窗口事件(WindowEvent)的监听器:WindowListener

    用于接收窗口事件的侦听器接口。当通过打开、关闭、激活或停用、图标化或取消图标化而改变了窗口状态时,将调用该侦听器对象中的相关方法

    (2)WindowListener接口中定义的方法

     1 抽象方法:
     2 void windowActivated(WindowEvent e) 
     3           激活窗口
     4  void windowClosed(WindowEvent e) 
     5           关闭窗口
     6  void windowClosing(WindowEvent e) 
     7           正在关闭窗口
     8  void windowDeactivated(WindowEvent e) 
     9           变为非活动窗口
    10  void windowDeiconified(WindowEvent e) 
    11           还原窗口    
    12  void windowIconified(WindowEvent e) 
    13           最小化窗口 
    14 void windowOpened(WindowEvent e) 
    15            打开窗口 

    5、 监听器接口适配器

    WindowListener接口中的方法都是抽象的,所以即使程序中不想关注某些事件,但是还是要实现所以的方法,比较麻烦,为了方便起见,Java提供了一个针对WindowListener接口的实现类,该类中把WindowListener接口中的方法全部实现,只不过方法体都为空

    6、鼠标键盘事件

    MouseEvent对象捕获

    Java对鼠标事件提供了MouseListener 监听器接口,可以监听鼠标的按下,释放,输入,退出和点击动作。

    按键事件可以利用键盘来控制和执行一些动作,如果按下、释放一个键就会触发按键事件。KeyEvent对象可以捕获按键的按下放开和敲击。KeyEvent提供了getkeyChar 来获取按键对应的字符。

    char getKeyChar() ;  // 返回与此事件中的键关联的字符

    Java提供了KeyListener监听器接口来监听按键事件

    1 void keyPressed(KeyEvent e)   //  按下某个键时调用此方法。 
    2 void keyReleased(KeyEvent e)   //   释放某个键时调用此方法。 
    3 void keyTyped(KeyEvent e)   //  键入某个键时调用此方法。

    一:确定事件源(容器或组件)

    二:注册监听器   

      通过事件源对象的addXXXListener()方法将监听器对象注册到该事件源上。

    三:监听器对象

        注册监听器时,需要指定监听器对象。

    以参数的形式进监听器对象传递给addXXXListener()

    监听器对象是XXXListener的子类对象或者XXXAdapter的子类对象。

       监听器对象一般用匿名内部类来表示。(简化书写)

       在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收。

       事件触发后会把事件打包成对象传递给该变量。(其中包括事件源对象。通过getSource()或者getComponent()获取。)

    四:常见的事件监听器

    WindowListener        主要用于监听窗口

    ActionListener          主要用于用监听组件对象的单击动作

    MouseListener          鼠标监听器

    KeyListener               监听键盘

    五:常见的事件适配器

    WindowAdapter

    MouseAdapter

    KeyAdapter

    有志者,事竟成,破釜沉舟,百二秦关终属楚;苦心人,天不负,卧薪尝胆,三千越甲可吞吴。
  • 相关阅读:
    第六章类(十一)构造函数4对象初始化器和集合初始化器
    第六章类(十)构造函数3new
    第六章类(九)构造函数2默认构造函数
    Javascript---- 练习八(字符串操作)
    图解CSS3----white-space空白符处理
    图解CSS3----word-break单词断行
    图解CSS3----word-wrap(单词换行)
    图解CSS3----text-overflow(文本溢出属性)
    图解CSS3----vertical-align(文本垂直对齐方式)
    Javascript---- 练习五(函数,事件绑定)
  • 原文地址:https://www.cnblogs.com/1989guojie/p/6120071.html
Copyright © 2011-2022 走看看