黑马程序员--GUI

------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)
			 */
			@Override
			public void windowClosing(WindowEvent e) {
				
				System.out.println("程序关闭");
				System.exit(0);
			}
			
		});
		
		
		but.addActionListener(new ActionListener(){

			@Override
			public 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)
			 */
			@Override
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
			
		});
		
		frame.setVisible(true);
	}

}

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


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


 

你可能感兴趣的:(黑马程序员--GUI)