GUI

---------------------------- ------- android培训 java培训 、期待与您交流! --------------------------------------------------
GUI: 图形用户界面
  用图形的方式,来显示计算机操作的界面,这样更方便更直观。
java为GUI提供的对象都存在java.awt和javax.swing两个包中

 

GUI设计的三个概念:

      组件(Component):java的图形用户界面的最基本组成部分

      容器(Container):是Component的子类

      布局管理器(Layout Manager):每个容器都有一个布局管理器,当容器需要对某个组件进行定位或者判断其大小

                                                     尺寸时,就会调用其对应的布局管理器

Awt和Swing:
 java.awt:Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。
  javax.swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。
   
Container:为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来。

布局管理器:
 容器中的组件的排放方式,就是布局。
       常见的布局管理器:
                FlowLayout(流式布局管理器)
              从左到右的顺序排列。
        Panel默认的布局管理器。
               BorderLayout(边界布局管理器)
               东,南,西,北,中
        Frame默认的布局管理器。
               GridLayout(网格布局管理器)
               规则的矩阵
        CardLayout(卡片布局管理器)
               选项卡
         GridBagLayout(网格包布局管理器)
                 非规则的矩阵
简单窗体创建的过程:
        Frame  f = new Frame(“my window”);
        f.setLayout(new FlowLayout());
        f.setSize(500,400);//设置窗体大小
        f.setLocation(300,200);//设置窗体出现在屏幕的位置
        f.setVisible(true);
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(){
			public void windowClosing(WindowEvent e) {
				
				System.out.println("程序关闭");
				System.exit(0);
			}
			
		});
				
		but.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				System.out.println("按钮关闭");
				System.exit(0);
			}
			
		});
		//5,显示窗体。
		f.setVisible(true);
	}
}
Swing组件的分类:
    1,顶层容器:JFrame,JApplet,JDialog,JWindow共4个
    2,中间容器:JPanel,JScrollPane,JSplitPane,JToolBar等
    3,特殊容器:在GUI上起特殊作用的中间层,如:JInternal,JFrame,JLayeredPane,JRootPane等。
    4,基本控件:实现人机交互的组件,如:Jbutton,JcomboBoJList, JMenu,JSlider,JTextFieldx等。
    5,不可编辑信息的显示:向用户显示不可编辑信息的组件,如:JLabel,JProgressBar,ToolTip等。
    6,可编辑信息的显示:向用户显示能被编辑的格式化信息的组件,如 JColorChooser,JFileChoose,JFileChooser,JTable,JTextArea等。
 
事件监听机制组成:
    1,事件源(组件)
    2, 事件(Event)
    3,监听器(Listener)
    4,事件处理(引发事件后处理方式)
事件监听机制:
    1,确定事件源(容器或组件)
    2,通过事件源对象的addXXXListener()方法将侦听器注册到该事件源上。
 该方法中接收XXXListener的子类对象,或者XXXListener的子类XXXAdapter的子类对象。一般用匿名内部类来表示。
    3,在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收。
    4,事件触发后会把事件打包成对象传递给该变量。(其中包括事件源对象。通过getSource()或者,getComponent()获取。)
相关代码演示:
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(){
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}			
		});
		
		frame.setVisible(true);
	}

}

菜单组件JMenu:
    作用:用户用来输入有关操作命令的简便工具。
    形式:下拉方式或者弹出方式。
    组成:
          1,菜单条JMenuBar:包含若干的菜单
           2,菜单JMenu:包含若干的菜单项
          3,菜单项JMenuItem:与按钮相识,在单击时引发一系列的动作命令
 菜单组件的设置:
    JMenuBar是通过JFrame、JWindow的根窗格添加至容器的组件,由多个JMenu组成。
    JMenu在JMenuBar下以字符串形式显示,而在用户单击它时,则以弹出式菜单显示。
   JMenuItem是JMenu中的一个组件,以字符串形式显示,可以具有图标,外观可以修改,如字体、颜色、背景、边框。
   






-----------------------------------------------android培训java培训、期待与您交流! --------------------------------------




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值