一: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(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。