一、图形界面
1、步骤
1)做界面
2)做监听
3)编写功能代码
2、做界面
图形界面中有许多组件:按钮、编辑框、静态文本,这些组件必须要放到一个容器中。
顶层容器有三种:J、JDialog、JApplet。
J:表示有边框的容器。
JDialog:对话框容器。
JApplet:JAVA小程序容器。
1)继承J
2)构造方法中设置相应参数。
计算机的原点坐标在左上角。横坐标从左向右依次增大,纵坐标从上到上依次增大。
setDefaultCloseOperation(int operation)设置用户在此窗体上发起 "close" 时默认执行的操作。必须指定以下选项之一:
a)DO_NOTHING_ON_CLOSE:不执行任何操作。
b)HIDE_ON_CLOSE:点击右上角关闭按钮后自动隐藏该窗体。
c)DISPOSE_ON_CLOSE:后自动隐藏并释放该窗体。
d)EXIT_ON_CLOSE:退出应用程序。仅在应用程序中使用。
默认情况下,该值被设置为 HIDE_ON_CLOSE。
import javax.swing.*;
public class First extends J {
JButton btn;
public First(){
/*设置主程序界面的位置和大小
* 第一个坐标:主界面左上角的横坐标
* 第二个坐标:主界面左上角的纵坐标
* 第三个坐标:主界面的宽度
* 第四个坐标:主办面的高度
* */
this.setBounds(100, 200, 400, 300);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);//设置关闭时退出
this.setTitle("第一个图形界面");//设置标题
this.setVisible(true);//让程序可见
}
}
//测试类
public class Test {
public static void main(String[] args) {
new First();
}
}
3、放组件
1)生成组件对象;
2)设置组件的位置;
3)加到容器;
第二步和第三步是可以调换。
在java中,顶层容器提供了布局器,会自动帮助布局。如需手动设置组件的大小和位置,需去掉布局器,再使用setBounds方法。因为JAVA规定,使用了布局器,setBounds方法无效。
import javax.swing.*;
public class First extends J {
JButton btn;
public First(){
/*设置主程序界面的位置和大小
* 第一个坐标:主界面左上角的横坐标
* 第二个坐标:主界面左上角的纵坐标
* 第三个坐标:主界面的宽度
* 第四个坐标:主办面的高度
* */
this.setBounds(100, 200, 400, 300);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);//设置关闭时退出
this.setTitle("第一个图形界面");//设置标题
this.setLayout(null);//将布局管理器设为空,即去掉布局管理器。
btn = new JButton("ok");//生成对象
this.getContentPane().add(btn);//将组件加到容器中
btn.setBounds(10, 50, 80, 30);//设置组件的位置和大小。
this.setVisible(true);//让程序可见
}
}
//登录界面
import javax.swing.*;
public class First extends J {
JButton btnOK, btnCancel;
JTextField txtUser;
JLabel labelUser;
public First(){
/*设置主程序界面的位置和大小
* 第一个坐标:主界面左上角的横坐标
* 第二个坐标:主界面左上角的纵坐标
* 第三个坐标:主界面的宽度
* 第四个坐标:主办面的高度
* */
this.setBounds(100, 200, 400, 300);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);//设置关闭时退出
this.setTitle("登录界面");//设置标题
this.setLayout(null);//将布局管理器设为空,即去掉布局管理器。
this.setComponent();
this.setVisible(true);//让程序可见
}
public void setComponent(){
btnOK = new JButton("ok");//生成对象
this.getContentPane().add(btnOK);//将组件加到容器中
btnOK.setBounds(100, 180, 80, 30);//设置组件的位置和大小。
btnCancel = new JButton("cancel");//生成对象
this.getContentPane().add(btnCancel);//将组件加到容器中
btnCancel.setBounds(200, 180, 80, 30);//设置组件的位置和大小。
labelUser = new JLabel("用户名");
this.getContentPane().add(labelUser);
labelUser.setBounds(120, 50, 80, 30);
txtUser = new JTextField();
this.getContentPane().add(txtUser);
txtUser.setBounds(180, 50, 80, 30);
}
}