黑马程序员--GUI

来源:互联网 发布:永宏fb编程电缆制作 编辑:程序博客网 时间:2024/06/10 05:52

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

GUI

GUI
             Graphical User Interface(图形用户接口)。
            用图形的方式,来显示计算机操作的界面,这样更方便更直观。
CLI
            Command line User Interface (命令行用户接口)
             就是常见的Dos命令行操作。
             需要记忆一些常用的命令,操作不直观。


Java为GUI提供的对象都存在java.awt和javax.swing两个包中
Awt与 Swing:


java.awt:Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。
javax.swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。

 

布局管理器
容器中的组件的排放方式,就是布局。
常见的布局管理器:
                FlowLayout(流式布局管理器)
                从左到右的顺序排列。
                Panel默认的布局管理器。
                BorderLayout(边界布局管理器)
                东,南,西,北,中
                Frame默认的布局管理器。
                GridLayout(网格布局管理器)
                规则的矩阵
                CardLayout(卡片布局管理器)
                选项卡
                GridBagLayout(网格包布局管理器)
                非规则的矩阵

awt:

package cn.itcast.gui.p1.awt;import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class AwtDemo {/** * @param args */public static void main(String[] args) {//1,创建窗体。Frame f = new Frame("my frame");//2,对创建进行基本设置。 //f.setSize(600, 500);//f.setLocation(350, 150);f.setBounds(350, 150, 600, 500);f.setLayout(new FlowLayout());//3,创建其他组件。比如按钮。Button but = new Button("new button");//4,将其他组件添加到窗体中。f.add(but);//给窗体添加一个监听器。处理关闭动作。f.addWindowListener(new WindowAdapter(){/* (non-Javadoc) * @see java.awt.event.WindowAdapter#windowClosing(java.awt.event.WindowEvent) */@Overridepublic void windowClosing(WindowEvent e) {System.out.println("程序关闭");System.exit(0);}});but.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("按钮关闭");System.exit(0);}});//5,显示窗体。f.setVisible(true);//System.out.println("over");}}


 

swing:

package cn.itcast.gui.p2.swing;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class SwingDemo {/** * @param args */public static void main(String[] args) {JFrame frame = new JFrame("my jframe");frame.setBounds(350, 150, 600, 500);frame.setLayout(new FlowLayout());JButton but = new JButton("new Button");frame.add(but);but.addActionListener(new ActionListener(){/* (non-Javadoc) * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) */@Overridepublic void actionPerformed(ActionEvent e) {System.exit(0);}});frame.setVisible(true);}}

事件监听机制组成:
                         事件源(组件)
                         事件(Event)
                         监听器(Listener)
                         事件处理(引发事件后处理方式)


事件监听机制
                        确定事件源(容器或组件)
                        通过事件源对象的addXXXListener()方法将侦听器注册到该事件源上。
                        该方法中接收XXXListener的子类对象,或者XXXListener的子类XXXAdapter的子类对象。
一般用匿名内部类来表示。
在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收。
事件触发后会把事件打包成对象传递给该变量。(其中包括事件源对象。通过getSource()或者,getComponent()获取。


 

0 0
原创粉丝点击