JAVA——GUI组件及事件(一)

一:JAVA  Swing概述:

       通过图形用户界面(GUI),用户和程序之间可以方便的进行交流。java的抽象工具包(jana.awt包)提供了许多用来设计GUI的组件类,之后JDK1.2推出后,增加了新的javax.swing包,该包提供了更为强大的功能用来设计GUI的类。

图--JAVA.AWT与JAVA.SWING关系图

 

 

在学习GUI时,必须掌握两大概念:容器类(Container)和组件类(Component);

GUI编程经常提到的基本知识点:

*Java把Component类的子类或间接之类创造的对象成为一个组件。

*Java把Container的子类或间接子类创建的对象成为一个组件。

*可以向容器添加组件。Container类提供一个public方法add(),一个容器可以调用这个方法将组件添加到该容器中。

*容器调用removeAll()方法可以除掉容器中的全部组件,调用remove(Component c)方法可以移调容器中参数c指定的组件。

*注意到容器本身也是一个组件,因此可以把一个容器添加到另一个容器中实现容器的嵌套。

*每当容器添加新的组件或移除组件时,应当让容器调用validate()方法,以保证容器中组件能正确显示出来。

二:窗口:

GUI设计中的底层容器:一个基于GUI的应用程序提供一个能和操作系统直接交互的可以被直接显现、绘制在操作系统所控制的平台上的容器;例如显示器;该容器被称为GUI设计中的底层容器。

窗口(JFrame:Java提供的JFrame类的实例就是一个底层容器,及窗口;

对话框(JDialog:java提供的JDialog类的实例也是一个底层容器,及对话框;

其他组件必须被添加到底层容器中,以便借助这个底层容器和操作系统进行信息交互;

*JFrame类是Container类的间接子类。当需要一个窗口时,可以使用JFrame或其子类创建一个对象。窗口也是一个容器,可以向窗口以安家组件;

注意:窗口默认被系统添加到显示器屏幕上,因此不容许将一个窗口添加到另一个容器中。

三:JFrame常用方法:

●JFrame()创建一个无标题的窗口;

●JFrame(String s)创建一个标题为s的窗口;

●public void setBounds(int a,int b,int width,int height)设置窗口的初始位置是(a,b),及距离屏幕左面a个像素,距离屏幕右面b个像素,窗口的宽是width,高是height;

●public void setSize(int widt,int height)设置窗口大小;

●public void setLocation(int x ,int y)设置窗口的位置,默认值为(0,0);

●public void setVisible(boolean b)设置窗口是否可见,窗口默认是不可见的;

●public void setResizeable(boolean b)设置窗口是否可调整大小,默认可调整大小;

●public void dispose()撤销当前窗口,并释放当前窗口所有资源;

●public void setExtendedState(int state)设置窗口的扩展状态,其中参数state取JFrame类中的下列类常量:MAXIMIZED_HORIZ(水平方向最大化);

MAXIMIZED_VERT(垂直方向最大化);

MAXIMIZED_BOTH(水平、垂直方向都最大化);

●public void setDefaultCloseOperation(int operation)该方法用来设置单机窗体右上角的关闭图标后,程序会做出怎样的处理。其中的参数operation取JFrame类中的下列int型static常量,程序根据参数operation取值做出不同的处理:DO_NOTHING_ON_CLOSE(什么也不做);

HIDE_ON_CLOSE(隐藏当前窗口);DISPOSE_ON_CLOSE(隐藏当前窗口,并释放窗体占有的其他资源);

EXIT_ON_CLOSE(结束窗口所在的应用程序)。

四:菜单条、菜单、菜单项

    菜单条、菜单、菜单项是窗口中常用的组件,菜单放在菜单条里,菜单项放在菜单里。

❶菜单条:

JComponent类的子类JMenubar负责创建菜单条,即JMenubar的一个实例就是一个菜单条。JFrame类有一个将菜单条放置到窗口中的办法:

setJMenuBar(JMenuBar bar);

    该方法将菜单条添加到窗口的顶端,需要注意的是,只能向窗口添加一个菜单条。

❷菜单:

    JComponent类的子类JMenu负责创建菜单,即JMenu的一个实例来就是一个菜单。

❸菜单项:

    JComponent类的子类JMenuItem负责创建菜单项,即JMenuItem的一个实例来就是一个菜单项。

❹嵌入子菜单

    JMenu是JMenuItem的子类,因此菜单本身也是一个菜单项,当把一个菜单看作菜单项添加到某个菜单中时,称这样的菜单为子菜单。

❺菜单上的图标:

    为了使菜单项有一个图标,可以用图标类Icon声明一个图标,然后使用其子类ImageIcon类创建一个图标,如:

Icon icon = new ImageIcon("a.gif");

    然后菜单项调用setIcon(Icon icon)方法将图标设置为icon。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值