框架JFrame是最高级的容器,可以包含N个叫面板(JPanel)的子容器。
容器有add跟remove方法来在容器中添加或者删除控件(如按钮JButton,文本框JTextField等)
容器的布局管理使用setLayout方法来设置布局
分3种布局方式:
FlowLayout--从左至右依次摆放控件,一行摆满换行继续
GridLayout--网格方式摆放
BorderLayout--方位摆放(东,南,西,北,中)
例子:
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.BorderLayout;
public class TestPane extends JFrame
{
public TestPane()
{
JPanel jp1=new JPanel();
jp1.setLayout(new GridLayout(4,3,1,1));
JButton buttons[]=new JButton[12];
String str[]={"1","2","3","4","5","6","7","8","9","0","Start","Stop"};
for(int i=0;i<12;i++)
{
buttons[i]=new JButton(str[i]);
jp1.add(buttons[i]);
}
JPanel jp2=new JPanel();
jp2.setLayout(new BorderLayout());
jp2.add(new JTextField("Time to be displayed here"),BorderLayout.NORTH);
jp2.add(jp1,BorderLayout.CENTER);
add(jp2,BorderLayout.EAST);
add(new JTextField("Food to be placed here"),BorderLayout.CENTER);
}
public static void main(String args[])
{
TestPane tp=new TestPane();
tp.setTitle("TestPanel");
tp.setSize(400,250);
tp.setVisible(true);
}
}
Swing GUI组件的通用属性:
Java.awt.Component //控件,组件
int x, y, width, height;
Color forground, background;
Font font;
boolean visible, enabled;
java.awt.Container //容器
LayoutManager layout;
add, remove, paintComponent
javax.swing.Jcomponent //
String toolTipText;
Border border;