Swing简介
- Swing是java的一个图形框架,继承自AWT;
- Swing主要涉及到容器,组件(是具体的东西,不能放东西),还有布局管理器(是器件,涉及到怎么放东西);
- Swing与用户交互时涉及到事件概念;
- public void setVisible(boolean b)根据参数 b 的值显示或隐藏此 Window。
- public void setSize(int width,
int height)调整组件的大小,使其宽度为 width,高度为 height。
- public void setLocation(int x,
int y)将组件移到新位置。通过此组件父级坐标空间中的 x 和 y 参数来指定新位置的左上角。
- public Container getContentPane()返回此窗体的 contentPane 对象(用于更改背景色)配合setBackground使用
- public void setBackground(Color c)设置组件的背景色。
- public void setDefaultCloseOperation(int operation)设置用户在此窗体上发起 "close" 时默认执行的操作。(JFrame.EXIT_ON_CLOSE关闭JFrame后JAVA程序也停止运行)
public class JframeTest {
public static void main(String[] args) {
JFrame jFrame = new JFrame("JFrame窗体");
jFrame.setLocation(400, 100);//设置容器位置
Container c = jFrame.getContentPane();
c.setBackground(Color.DARK_GRAY);
c.setBackground(new Color(0,0,0));//设置背景色的不同写法
jFrame.setSize(500, 200);//设置容器大小
jFrame.setVisible(true);//让容器显示
}
}
第三节JButton组件
添加按钮。JButton jB = new JButton(“按钮”);
jFrame.add(jB);将按钮添加到容器中
第四节Swing布局管理器
- FlowLayout 流式布局
使用此布局会使所有组件像流水一样依次排列
public void setLayout(LayoutManager manager)设置 LayoutManager。重写此方法,从而有条件地将调用转发到 contentPane。
----------
public class JframeTest {
public static void main(String[] args) {
JFrame jFrame = new JFrame("FlowLayout测试");
jFrame.setLayout(new FlowLayout());//流式布局
JButton jb = null;
for (int i = 1; i < 10; i++){
jb = new JButton("JButton"+i);
jFrame.add(jb);
}
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setLocation(400, 100);//设置容器位置
Container c = jFrame.getContentPane();
c.setBackground(Color.DARK_GRAY);
jFrame.setSize(500, 200);//设置容器大小
jFrame.setVisible(true);//让容器显示
}
}
- BorderLayout 是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。
BorderLayout()
构造一个组件之间没有间距的新边框布局。
jFrame.setLayout(new BorderLayout());
jFrame.add(new JButton("东"),BorderLayout.EAST);
jFrame.add(new JButton("北"),BorderLayout.NORTH);
jFrame.add(new JButton("西"),BorderLayout.WEST);
jFrame.add(new JButton("南"),BorderLayout.SOUTH);
jFrame.add(new JButton("中"),BorderLayout.CENTER);
BorderLayout(int hgap, int vgap)
构造一个具有指定组件间距的边框布局。
例如:jFrame.setLayout(new BorderLayout(10,10));
输出
- GridLayout GridLayout 类是一个布局处理器,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件。
构造方法摘要
GridLayout()
创建具有默认值的网格布局,即每个组件占据一行一列。
GridLayout(int rows, int cols)
创建具有指定行数和列数的网格布局。
GridLayout(int rows, int cols, int hgap, int vgap)
创建具有指定行数和列数的网格布局。 - 绝对布局 setBounds
public void setBounds(int x,
int y,
int width,
int height)移动组件并调整其大小。由 x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。
如: