java学习——54.混合布局
在此篇之前,已经介绍了四种布局方式,流布局,边布局,网格布局和网格包布局。
(详情请看java学习——52、网格包布局;java学习——51、网格布局;java学习——50、边布局;java学习——49、流布局)
在实际的应用当中,可以灵活运用这四种布局方式的一种或多种,使界面更合乎用户的需要。
以“计算器”为例,本例用到了两种布局方式。
一种是Frame的默认布局:边布局。
一种是在面板中设置的:网格布局。
其完整代码如下:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Calculato extends Frame{
TextField text;
Button button[];
public Calculato(){
super("计算器");
this.setBounds(200, 200, 200, 200);
this.setVisible(true);
text=new TextField(30);
this.add(text,"North");//Frame框架默认边布局
Panel p1=new Panel();
p1.setLayout(new GridLayout(4,4));//p1面板采用网格布局
String s[]={"+","-","*","/","1","2","3","4","5","6","7","8","9","0","=","CE"};
button=new Button[s.length];
for(int i=0;i<s.length;i++){
button[i]=new Button(s[i]);
p1.add(button[i]);
}
this.add(p1);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});//关闭窗口
}
public static void main(String args[]){
new Calculato();
}
}
其运行结果如下:
本例中,采用循环添加按钮,就不用再一个一个按钮去添加。
用数组为按钮上的文本赋值。