GUI——Frame类
------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
Frame类
构造方法:
Frame();
Frame(String title);
创建窗体的基本流程:
1、创建窗体对象并设置好窗体名称 Frame类的构造方法
2、设置好窗体的位置和大小 setBounds(intx,int y,int width,int height);
3、创建组件对象 具体组件看具体的构造方法
4、设置布局 setLayout(LayoutManagermgr);//传入的是布局类
5、将组件对象添加到窗体对象中 add(componentcomp);
6、设置窗体可见 setVisible(booleanb);//true为可见
注意:
1、就这样创建出来的窗体是不能通过点击右上角的红×来关闭的,
只能通过手动的点击红色小方块结束程序来关闭。
而且里面的按钮点击也并没有任何效果
2、setBounds方法里前面两个是设置窗体位置的,
后面两个是设置窗体大小的,别弄错了。
3、如果窗体没有设置布局,那么默认为边界布局,
又没有设置东南西北的话,所添加的组件居中全覆盖窗体的面板。
示例:
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
public class FrameDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建空白窗体。
// demo1();
/*
* 创建有按钮组件的窗体。
* 由于没有设置布局,默认就是边界布局,
* 又没有指定东西南北,所以按钮居中全覆盖了面板。
*/
// demo2();
//创建有按钮组件也有文本框组件的窗体。同时设置了流式布局。
demo3();
}
public static void demo1() {
//创建窗体对象,并设置窗体名称
Frame f=new Frame("MyFrame1");
//设置窗体所在的位置,前面的数字是距左边距离,后面的数字是距上面的距离。数字随心设。
f.setLocation(400, 200);
//设置窗体的大小,前面是宽,后面的是高。数字随心设。
f.setSize(500, 400);
//一次把窗体位置大小全部设置好
// f.setBounds(400, 200, 500, 400);
//设置窗体为可见
f.setVisible(true);
/*
* over输出了,可是程序还没停止,说明这里开启了一个新的线程。
* 主线程结束了,另一个线程还没结束。
* 而这个新的线程就是运行这个窗体的线程。
*/
System.out.println("over");
}
public static void demo2() {
// TODO Auto-generated method stub
//创建窗体对象,并设置窗体名称
Frame f=new Frame("MyFrame2");
//设置窗体的位置和大小
f.setBounds(400,200,500,400);
//创建按钮对象,并设置好按钮上要显示的字
Button b=new Button("一个按钮");
//将按钮对象添加到窗体对象中
f.add(b);
//设置窗体可见
f.setVisible(true);
}
public static void demo3() {
// TODO Auto-generated method stub
//创建窗体对象,并设置窗体名称
Frame f=new Frame("MyFrame3");
//设置窗体位置和大小
f.setBounds(400,200,500,400);
//创建按钮对象,并设置好按钮上要显示的字
Button b=new Button("一个按钮");
//创建文本框对象,并指定好列数
TextField tf=new TextField(15);
//设置布局为流式布局
f.setLayout(new FlowLayout());
//将文本框对象和按钮对象添加到窗体对象中,排放位置也和你添加顺序有关
f.add(tf);
f.add(b);
//设置窗体可见
f.setVisible(true);
}
}
注释:单个方法依次运行结果如下图
demo1方法
demo2方法
demo3方法