总结—界面

总结——Swing界面开发

1.常用的组件

容器组件:能装载容器组件或者元素组件。

javax.swing.JFrame窗体容器组件顶级容器

 

元素组件:只能显示文字或者图片。

javax.swing.JLabel标签元素组件显示文字,图片

javax.swing.JTextField文本输入框元素组件接收输入,直接显示

javax.swing.JButton按钮组件显示文字,图片,可以点击。

 

布局组件:主要应用在容器组件中,主要对容器上添加的组件进行排列显示。

java.awt.FlowLayout流式布局组件word文档。

 

2.实现一个简单的登录界面

1.新建一个Login类,在类中定义主函数和初始化界面的方法。

2.在初始化界面的方法中创建JFrame类的对象。

3.设置JFrame对象的属性值(大小,标题,位置,关闭,可见,布局)。

4.创建元素组件对象,将创建好的对象添加到JFrame容器上。

5.在主函数中创建Login类的对象,然后调用初始化界面的方法。

 

3.练习

1.实现登录界面

 

 

2.实现计算器界面

 

 

4.接口

定义接口的关键字:interface

public interface 接口名 extends 接口,... {

//常量

public static final 数据类型  常量名 = 值;

static final 数据类型  常量名 = 值;

数据类型  常量名 = 值;

 

//抽象方法

public abstract 返回值类型  方法名(数据类型 参数名,...);

public 返回值类型  方法名(数据类型 参数名,...);

abstract 返回值类型  方法名(数据类型 参数名,...);

返回值类型  方法名(数据类型 参数名,...);

 

}

 

注意:1.接口中只有一种访问修饰符public 。

 2.抽象方法定义时一定要以;结尾。

 3.接口不能创建对象。

 4.接口可以继承一个或者多个接口

 

实现接口的关键字:implements

格式:

public class 类 extends 类 implements 接口,... {

 

//定义属性

 

//定义构造方法,普通方法

 

}

当类实现接口后,类必须要实现(重写)接口中所有的抽象方法,如果没有实现(重写)接口

中的抽象方法,则程序编译报错。

 

丰富类的继承。

 

接口和类的区别:

 

 

5.事件

Qie ting风云:吴彦祖(接收到画面和声音)     刘青云(安装了qie ting器)

事件源

只能是Swing的图形界面组件。

动作发生在某一个组件上,那么该组件就会成为一个事件源对象。

<!--[if !supportLists]-->1.<!--[endif]-->开发登陆界面

public class JFrameTest{

public static void main(String args[]){

JFrameTest tf=new JFrameTest();

tf.showFrame();

}

//显示一个加有多个组件的窗体界面

public void showFrame(){

    //创建一个窗体对象

JFrame frame=new JFrame();

  frame.setTitle("第一个登陆界面");//设置标题

       //创建一个标签元素

       JLabel la_name=new JLabel("名字");

        //创建一个指定长度的文本

       JTextField jta_name=new JTextField(4);

       //创建一个按钮;

       JButton bu_login=new JButton("登陆");

       //将这三个组件加到窗体上

       frame.add(la_name);

       frame.add(jta_name);

       frame.add(bu_login);

       frame.setSize(200,200);//设置窗体大小

       frame.setVisible(true);//让窗体显示出来,这句要放到最后面

   }   

}

 

  效果图: 

                     

 

 

<!--[if !supportLists]-->2.<!--[endif]-->使用布局管理器管理组件的摆放

布局方法:FlowLayout()流体布局,自动式,不可控

          Layout(null)空布局 可以设置位置

         orderLayout   边框布局

 

public class Flowbuju {

public static void main(String[] args) {

 Flowbuju Fb = new Flowbuju();

 Fb.showFrame();

}

public void showFrame(){

       //构造一个窗体对象

    JFrame jf = new JFrame();

//设置标题

jf.setTitle("第一个界面程序");

//设置大小

jf.setSize(400, 200);

//设置位置

jf.setLocationRelativeTo(null);

//放置元素组件前,要创建并给窗体加上布局管理器:

//创建流失布局管理器对象:

FlowLayout f1 = new FlowLayout();

jf.setLayout(f1);

//创建一个标签元素:

JLabel ja = new JLabel("账号");

//创建一个指定长度的文本

JTextField jt = new JTextField(4);

//创建一个标签元素:

JLabel ja2 = new JLabel("密码");

//创建一个指定长度的文本

JTextField jt2 = new JTextField(4);

//创建一个按钮

JButton jb = new JButton("登陆");

 

jf.add(ja);

jf.add(jt);

jf.add(ja2);

jf.add(jt2);

jf.add(jb);

jf.setDefaultCloseOperation(3);//窗体关闭时程序退出

jf.setVisible(true);//让窗体显示出来,这句要放到最后面

LoginListener ll = new LoginListener();

jb.addActionListener(ll)  

}

}

 

 

空布局示例

public class Login {

 

public static void main(String[] args) {

Login Fb = new Login();

Fb.showFrame();

}

 

public void showFrame(){

//构造一个窗体对象

    JFrame jf = new JFrame();

//设置标题

jf.setTitle("QQ登陆界面");

//设置大小

jf.setSize(430, 330);

//设置位置

jf.setLocationRelativeTo(null);

//创建流式布局

jf.setLayout(null);

 

//添加图片背景

JLabel image = new JLabel(new ImageIcon("Picture/bj.jpg"));

image.setBounds(0, 0, 430, 330);

     jf.add(image);

 

    //创建一个标签元素:

JLabel ja = new JLabel("账号");

//创建一个指定长度的文本

JTextField jt = new JTextField("账号");

jt.setBounds(120, 193, 193,26);

image.add(ja);

image.add(jt);

 

 

//创建一个标签元素:

JLabel ja2 = new JLabel("密码");

//创建一个指定长度的文本

JTextField jt2 = new JTextField("密码");

jt2.setBounds(120, 221, 193,26);

//将标签加到图片上    

/*

 * 加到jf上时不能显示

 * eg:

 *  

 *  jf.add(ja2);

 * 

 */

image.add(ja2);

image.add(jt2);

 

 

//创建一个按钮

JButton jb = new JButton("登陆");

jb.setBounds(120,252,193,30);

image.add(jb);

 

//设置大小不可改变

jf.setResizable(false); 

 

jf.setDefaultCloseOperation(3);//窗体关闭时程序退出

 

jf.setVisible(true);//让窗体显示出来,这句要放到最后面

//添加监听器

LoginListener ll = new LoginListener();

jb.addActionListener(ll)

 

}

 

}



 

监听器

public class LoginListener implements ActionListener {

 

public void actionPerformed(ActionEvent e) {

 

 

 

JFrame jf = new JFrame();

//设置标题

jf.setTitle("QQ");

//设置大小

jf.setSize(280, 668);

//设置大小不可改变

jf.setResizable(false); 

jf.setLocationRelativeTo(null);

 

//放置元素组件前,要创建并给窗体加上布局管理器:

//创建流失布局管理器对象:

java.awt.FlowLayout f1 = new java.awt.FlowLayout();

jf.setLayout(f1);

//创建一个标签元素:

JLabel ja = new JLabel("账号");

//创建一个指定长度的文本

JTextField jt = new JTextField(e.getActionCommand());

jt.setPreferredSize(new Dimension (50,30));

 

//创建一个标签元素:

JLabel ja2 = new JLabel("密码");

//创建一个指定长度的文本

JTextField jt2 = new JTextField(e.getActionCommand());

jt2.setPreferredSize(new Dimension(50, 30));

 

 

jf.add(ja);

jf.add(jt);

jf.add(ja2);

jf.add(jt2);

 

jf.setDefaultCloseOperation(3);//窗体关闭时程序退出

jf.setVisible(true);//让窗体显示出来,这句要放到最后面

 

 

}

 

}       

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值