JFrame frame = new JFrame("SwingWindowsApp");
这段代码创建JFrame是顶层容器,JFrame的构造函数中传入字符串作为窗口的标题。
所有的顶层容器都包含一个默认类型为JPanel的容器叫content pane(内容面板,中间层容器)
获取这个容器函数 Container JFrame.getContentPane() ,其中Container是AWT中定义的容器类。JComponent是它的子类
为了将JLabel组件加到frame中,需要将它加到frame的content pane中。
JLabel lab1 = new JLabel(" Swing JLabel");
frame.getContentPane().add(lab1);
JFrame的content pane的布局管理器的默认类型是BorderLayout。
布局管理器控制着容器中组件的位置。
把 Swing 的各种组件(JComponent)添加到面板容器中(JPanel),需要给面板容器指定布局管理器(LayoutManager),明确容器(Container)内的各个组件之间的排列布局方式。。
Java提供了若干种布局管理器。
FlowLayout流式布局,按组件加入顺序,按水平方向排列,排满一行换下一行继续排列。
GridLayout网格布局,把Container按指定行列数分隔出若干网格,每一个网格按顺序放置一个控件。
GridBagLayout网格袋布局,按网格划分Container,每个组件可占用一个或多个网格,可将组件垂直、水平或沿它们基线对齐。
BoxLayout箱式布局,将Container中的多个组件按 水平 或 垂直 的方式排列。
GroupLayout分组布局,将组件按层次分组(串行 或 并行),分别确定 组件组 在 水平 和 垂直 方向上的位置。
CardLayout卡片布局,将Container中的每个组件看作一张卡片,一次只能显示一张卡片,默认显示第一张卡片。
BorderLayout边界布局,把Container按方位分为 5 个区域(东、西、南、北、中),每个区域放置一个组件。
SpringLayout 弹性布局,通过定义组件四条边的坐标位置来实现布局。
null 绝对布局,通过设置组件在Container中的坐标位置来放置组件。