GUI英文全称为Graphical User Interface(图形用户界面)

CLI英文全称为Command Line User Interface(命令行用户接口)

在java中图形界面用两个包分别是Awt和Swing

java.awt:Abstract Window Toolkit(抽象窗口工具包)需要调用本地系统方法实现功能,属于重量级控件。

javax.swing:在awt的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全是java实现的,增强了移植性,属于轻量级控制,跨平台强

继承关系图:

Component
     |-------Container
        |-------Window
                  |-------Frame窗体
              |-------Dialog对话框
                        |------FileDialog文件对话框
                |--------Panel
     |------Button
     |------Lable
     |------Checkbox
     |------TextComponent
              |------TextArea
          |------TextField

Container:为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来

常见的布局管理器:

FlowLayout(流式布局管理器)

1、从左到右顺序排列

2、Danel默认的布局管理器

BorderLayout(边界布局管理器)

1、排列方式是一次是东南西北中

2、Frame默认的布局管理器

GridLayout(网格布局管理器)

1、规则的juzhen

CardLayout(卡片布局管理器)

1、选择卡

GridBagLayout(网格包布局管理器)

1、非规则的矩阵

做图形界面一定要先画出布局在用程序画出

图形化界面是由另一个线程控制的

Frame默认为边界布局

setSize(大小)

setLocation(位置)

setLayout(布局模式)

add(添加控件)

setVisible(true)显示

事件监听器机制的组成:

事件监听器机制的特点:

1、事件源:就是awt和swing包中的哪些图形界面的组件

2、事件:每一个事件源都有自己所对应的事件和共性事件

3、监听器:将可以触发的某一事件的动作都已封装到了监听器中

以上三者,在java中都已封装好了,直接获取其对象来用就可以了

4、事件处理:这要自己实现

下面是一个GUI的程序:

package jar;
import java.awt.*;
import java.awt.event.*;
class MyMenuTest 
{
	private Frame f;
	private MenuBar mb;
	private Menu mainMenu;
	private Menu closeMenu;
	private Menu childMenu;
	private MenuItem menuItem;
	private MenuItem menuItem1;
	private FileDialog fdLoad;
	private FileDialog fdSave;

	MyMenuTest()
	{
		init();//初始化窗体
	}

	public void init()
	{
		f=new Frame("我的窗口");//创建一个带有我的窗口的窗口
		f.setBounds(300,100,600,500);//设置窗口的位置和大小
        mb=new MenuBar();//创建一个菜单栏
        mainMenu=new Menu("文件");//创建一个菜单
        childMenu=new Menu("操作");//创建一个子菜单
		menuItem=new MenuItem("打开");//创建一个菜单选项
		menuItem1=new MenuItem("保存");
		childMenu.add(menuItem);//将菜单选项添加到菜单上
                childMenu.add(menuItem1);
		mainMenu.add(childMenu);将子菜单添加到菜单上
		closeMenu=new Menu("关闭");
		mb.add(mainMenu);
		mb.add(closeMenu);
		f.setMenuBar(mb);//将菜单栏添加到窗口上
		fdLoad=new FileDialog(f,"打开",FileDialog.LOAD);//创建一个打开文件的窗口
		fdSave=new FileDialog(f,"保存",FileDialog.SAVE);//创建一个保存文件的窗口
                 MyEvent();//调用事件方法
		f.setVisible(true);//显示窗体
	}
	public void MyEvent()
	{
		f.addWindowListener(new WindowAdapter(){//为窗体添加监听事件
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);//关闭程序
			}
		});
		menuItem.addActionListener(new ActionListener()//为菜单选项添加监听事件,注意菜单是不可以添加监听事件的
		{
			public void actionPerformed(ActionEvent e)
			{
				fdLoad.setVisible(true);
			}
		});
		menuItem1.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				fdSave.setVisible(true);
			}
		});
	}
	public static void main(String[] args) 
	{
		new MyMenuTest();//创建窗体对象
	}
}
如何打jar包,并实现双击自动运行
1、将多个类文件包含在包中

2、创建一个文本文件在里面写上

Main-Class:空格+包名.类名+换行

例如类名为:a.txt

3、打jar包

jar -cvfm my.jar a.txt 包名

4、通过解压程序看jar包中的信息

5、需要要配置关联文件,将其与jdk\bin\javaw.exe关联

6、可以双击了






Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐