- AWT 和 Swing的区别
- JFrame 和 Frame的区别
- 标签JLabel
- JLabel的文本左右对齐属性设置方法
AWT和Swing之间的基本区别:
AWT 是基于本地方法的C/C++程序,其运行速度比较快,但是跨平台性较差。这个工具包提供了一套与本地图形界面进行交互的接口。AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,我们把它称为peers。AWT 所提供的图形功能是各种通用型操作系统所提供的图形功能的交集。
Swing是基于AWT 的Java程序,其运行速度比较慢,但是由于采用java程序进行实现,其跨平台性较好。
JFrame 和 Frame的区别这两者的区别实质在于一个是在swing包下,另一个是在awt包下。
(1):我们可以在JFrame 对象中添加AWT 或者Swing 组件。JFrame中虽然有 add 方法,但是却不能直接用于添加 AWT 组件或者 Swing 组件,否则会抛出异常。因为你直接添加的话,会默认直接添加到根面板上,而内容面板则会覆盖根面板的内容。
JFrame 有一个ContentPane,窗口能显示的所有组件都是添加在这个ContentPane 中。JFrame 提供了两个方法:getContentPane 和setContentPane 就是用于获取和设置其ContentPane 的。
对JFrame添加组件有两种方式:
1)用getContentPane()方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childComponent)
2)建立一个Jpanel或JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板:
Jpanel contentPane=newJpanel();
……//把其它组件添加到Jpanel中;
frame.setContentPane(contentPane);
//把contentPane对象设置成为frame的内容面板
(2):在AMT组件中分为两大类,这两类的基类分别是Component和MenuComponent,其中,MenuComponent是所有与菜单相关组件的父类,Component则是除菜单外其他AMT组件的父类,它表示一个能以图形化方式显示出来,并可与用户交互的对象。
Component类通常被称为组件,根据Component的不同作用,可将其分为基本组件类和容器类。基本组件类是按钮,文本框之类的,容器类则是通过Component的子类Container实例化的对象。Container又分为Window和Pannel,Window又分为Frame和Dialog,Frame是窗体,Dialog是对话框。Panel是中间容器。
标签JLabelJLabel对象可以显示文本、图像或同时显示二者。
JLabel对象可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其显示区内垂直居中对齐。对于内容是文本文字来说,JLabel默认显示垂直居中且左对齐。显示图像的标签则水平居中对齐。除此之外,还可以指定文本相对于图像的位置。默认情况下,文本位于图像的结尾边上,文本和图像都垂直对齐。
Label类提供两个设置文本内容对齐方式的方法:
setHorizontalAlignment:设置水平对齐方式;
它的有效参数是:
--SwingConstants.LEFT:左对齐;(默认值,也就是不设置时则左对齐)
--SwingConstants.CENTER:居中对齐;
--SwingConstants.RIGHT:右对齐;
setVerticalAlignment:设置垂直对齐方式;
它的有效参数是:
--SwingConstants.TOP:向上对齐;
--SwingConstants.CENTER:居中对齐;(默认值,也就是不设置时居中对齐)
--SwingConstants.BOTTOM:向下对齐;
有时,我们也会看到在这两个方法中传入JLabel.CENTER等参数,这种参数和SwingConstants.CENTER所起到的作用是相同的,从源码中,我们可以看到JLabel继承自SwingConstants,因此,我们可以将JLabel.CENTER就看作SwingConstants.CENTER。



