最近在给自己的一个搜索下载工具包做一个UI,弄成桌面应用。窗口顶部是标准的swing菜单,下面有几个AWT的label和button组件。当我加了几个菜单项然后运行之后,发现下拉菜单被label挡住了,无论如何设置都不行。后台查阅了相关资料,才知道这是AWT这个重量级组件和swing这个轻量级组件混用的不可调谐的矛盾。
AWT组件各自对应一个本地组件native peer,就是和操作系统相关,会因为操作系统不同而有不同。Swing中组件除顶级容器类组件如Window、Frame和Applet有自己的native peer外其他都没有对应的native peer,用来模拟这些Swing组件的图形对象资源都来自于它所在的顶层容器。由于二者的Z-order设计不同,所以它们混合使用来排版时会出现各种古怪的覆盖问题。而推荐的做法是尽量只使用其中一种组件,推荐Swing,理由如下:
1,高效的利用资源。AWT需要操作系统的额外开销。
2,维护平台一致性。重量级组件在不同平台具有不同的缺省外观、尺寸、布局、字体以及行为等。这需要编写额外代码维护各个平台程序的一致性。比如 Windows和Linux的缺省字体、大小和样式都不一样,需要显示的设置字体样式和大小等;在Windows很好看的布局有可能在Linux变得乱七八糟;组件间的间隔因为平台的不同而有很多变化。
3,良好的皮肤支持。AWT同SWT一样是不支持皮肤更换机制的。
参考文章:
http://tech.e800.com.cn/articles/2009/83/1249251222247_1.html
SUN官方swing指南:
http://java.sun.com/docs/books/tutorial/uiswing/
分享到:
相关推荐
3.熟悉Java AWT、swing组件的功能; 4.掌握常用组件的事件接口; 5.会应用AWT、swing组件进行应用程序设计。 二、实验内容 设计windows计算器图形用户界面(如下图所示)。 AWT、swing组件应用程序设计设计(完成...
对照了解AWT与Swing的区别,能更好地理解GUI
这是java中awt和swing是的关系以及区别,可以跟好的分别两者中的关系
java中awt和swing是的关系以及区别java中awt和swing是的关系以及区别
主要是总结了awt和swing常用组件中常用方法概况。
JAVA图形编程(AWT+SWING),包括AWT和SWING两部分。很不错的学习资料,全面,细致,和大家一起分享。
使用Java AWT和Swing实现的计算器,其中的输入输出框为TextField,其余按钮均为JButton,可以实现加、减、乘、除、取反、求倒运算。
java的AWT和SWING替换组件默认事件方式实例,对于gui的提高有较高价值,推荐给大家,简单易懂
awt和swing学习实例,代码加注释。
java 图形编程 awt-swing java 图形编程 awt-swing
运用面向对象编程,继承、封装和多态等,Java语言的基本语法,Java IO;多线程编程,网络编程,序列化,反射,程序国际化;基本的界面编程(AWT和Swing)等基础知识。是学习java基础的一个极好案例。
AWT和SWING的介绍以及二者的区别与联系
100多个实例源码,学习awt、swing。AWT和Swing都是java中的包。 AWT(Abstract Window Toolkit):抽象窗口工具包,早期编写图形界面...Swing :为解决 AWT 存在的问题而新开发的图形界面包。Swing是对AWT的改良和扩展。
用java 的awt和swing 编辑的计算器,编辑的思路比较好,代码精简。实现计算器四则混合运算。
NULL 博文链接:https://wenhai.iteye.com/blog/697993
java图形界面设计awt和swing,这是两个chm文件,体积虽小,但内容绝对不少,值得下载
Swing组件教案及示例程序
AWT的特点是使用操作系统的原生窗口和组件,因此在不同的操作系统上,界面的外观和行为可能会有所不同。这使得AWT在跨平台兼容性方面存在一些问题。 Swing是在AWT的基础上开发的一套GUI工具包。它提供了一系列的类...
Java Swing 组件大全 Java Swing 是 Java 语言中一个功能强大且广泛使用的图形用户界面...Java Swing 组件库是一个功能强大且广泛使用的图形用户界面组件库,提供了大量的组件和工具,用于构建复杂的桌面应用程序。
首先导入了AWT和Swing库。然后定义了一个名为SimpleGUI的类,并在main()方法中创建了一个JFrame对象来表示主窗口。设置了窗口的标题、关闭操作和大小,并获取了窗口的内容面板。接着创建了一个容器,并将其布局设置...