JAVA简明摘要(十三)运用Swing(Swing)
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
下拉框