第五讲 图形用户界面设计
AWT:Abstract Window Toolkit(抽象窗口工具集),依赖于平台的,相同代码在不同平台上有不同的运行效果。但是执行效率高。
Swing:轻量级的Java图形库,不依赖与具体平台。功能更丰富。不同平台运行运行一致。
如果同时使用两种组件,系统会考虑重量级组件。所以不要在容器中混合使用AWT和Swing组件。
java图形界面由组件组成。容器(container)是组件的容器,容器里可以通过add()方法添加容器或组件。
Swing中四中顶层容器。JFrame、JWindow、JApplet、JDialog,创建应用程序时,使用JFrame,创建小型应用程序时,使用JApplet.包含在浏览器中,创建对话框时使用JDialog,JWindow不带有标题和控制按钮的窗口。
import java.awt.*;
import javax.swing.*;
JFrame jf = new JFrame("JFrame Demo");
JButton jb = new JButton("press me");
jf.getContentPane().add(jb,BorderLayout.CENTER);//顶层容器都有一个内容窗格。除菜单组件之外的组件都放在内容窗格中。
jf.pack(); //将jf设置成适当的大小
jf.setVisible(true);//将jf设置为可见。
将组件放入内容窗格的两种方法。
Container contentPane = jf.getContentPane();
contentPane.add(jb,BorderLayout.CENTER);
JPanel contentPane = new JPanel();
contentPane.setLayout(new BorderLayout());//设置面板布局
contentPane.add(button,BorderLayout.CENTER);
jf.setContentPane(contentPane);
布局管理器
FlowLayout布局管理器,从左到右,从上到下,默认居中。
在创建标签的时候容易写成JLable,应该为JLabel
别忘记加上主函数。。。。
BorderLayout边界布局管理器,在添加组件时,必须指明其位置。每个位置只能放一个组件。
标签是透明的,所以标签的背景色再设置还是和面板的颜色相同
CardLayout cly = new CardLayout(4,2);
cly.next(pancards);//cly是卡片布局管理器,pancards是卡片管理器的总容器。