Java使用面板作为子容器的布局
使用的是 GridLayout 和 BorderLayout
- GridLayout
根据构造方法定义的行数和列数,布局管理器 以 网格(矩阵)的形式排列组件。组件按照添加的顺序从左到右排列,从第一行开始,接着第二行…..
定义方法
setLayout(new GridLayout(3,2,5,5));
GridLayout(行数,列数,水平间距,垂直间距)
- BorderLayout
将窗口分为五个区, 东南西北中央
setLayout(new BorderLayout(5,10));
BorderLayout(水平间距,垂直间距);
放置实现语句
Add(jbutton,BorderLayout.EAST);
用JPanel类先创建一个带指定布局管理器的面板,使用add 在面板中添加组件。在把面板与其他的组件或者面板结合起来。形成一个GUI容器
package helo;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.Border;
import manager.system;
public class GUI extends JFrame {
public GUI(){
JPanel p1 = new JPanel(); //p1为一个面板
p1.setLayout(new GridLayout(4,3));
for( int i = 1 ; i < 10 ; i++)
{
p1.add(new JButton(""+i));
}
p1.add(new JButton("STRAT"));
p1.add(new JButton(""+0));
p1.add(new JButton("STOP")); //到这p1面板的布局结束
JPanel p2 = new JPanel(new BorderLayout());
p2.add(new JTextField("Time to be displayed here"),BorderLayout.NORTH);
p2.add(p1,BorderLayout.CENTER);
//p2面板布局结束 p2中主要为 一个 TextField 和 P1
add(p2,BorderLayout.EAST);
add(new JButton("Food to be placed here"),BorderLayout.WEST);
// 这个为最后的布局框架
}
public static void main(String[] args){
GUI frame = new GUI();
frame.setTitle(null);
frame.setLocationRelativeTo(null);
frame.setSize(400,150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}