1 Swing的组件
组件(component,或称元件)是比我们之前称为widget更为正确的术语。
从技术上来说,widget是个Swing的组件,几乎所有的GUI组件都来自于java.swing.JComponent。
几乎所有组件都能安置其他的组件。
创建GUI的四个步骤:
1.创建window(JFrame)
2.创建组件
3.把组件加到frame上
4.显示出来
frame 框架
panel 面板
2 布局管理器(Layout Managers)
布局管理器是个与特定组件相关联的Java对象,它大多数是背景组件。
布局管理器用来控制所关联组件上携带的其他组件。
如果某个框架带有面板,而面板带有按钮,则面板的布局管理器控制着按钮的大小和位置,框架的布局管理器控制着面板的大小和位置。按钮没有携带其他组件,不需要布局管理器。
3 三大布局管理器
BorderLayout
这个管理器会把背景分为5个区域,每个区域只能放上一个组件。
是框架默认的布局管理器。
东西宽度可以自己决定,南北高度可以自己决定,中间只能捡剩下的。
南北会最先占位,东西其次,中间最后。
FlowLayout
和文字处理程序差不多,每个组件会依照理想的大小呈现,从左到右依次加入,放不下时会换行。
是面板默认的布局管理器。
BoxLayout
和FlowLayout一样会让每个组件使用默认的大小,并且按照加入的顺序来排列。但BoxLayout是以垂直的方向来排列,也不会自动换行,需要插入某种类似于换行的机制来强制换行。
import javax.swing.*;
import java.awt.*;
public class Panel1 {
public static void main (String[] args) {
Panel1 gui = new Panel1();
gui.go();
}
public void go() {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.setBackground(Color.darkGray);
//把布局管理器换掉,其构造函数需要知道管理哪个组件以及使用哪个轴
panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
JButton button = new JButton("Click Me Quickly Baby");
JButton buttonTwo = new JButton("Click Me");
panel.add(button);
panel.add(buttonTwo);
frame.getContentPane().add(BorderLayout.EAST, panel);
frame.setSize(250,200);
frame.setVisible(true);
}
}
4 操作Swing组件
JTextField
单行输入文本框
JTextArea
多行输入文本框
JCheckBox
复选框
Jlist
下拉框