登录界面



                                   登陆界面
一.构造器方法
  1.我们在创建一个累的对象时,使用类名 对象名=new 类名();的格式,
   这里用到的类名()就叫做类的构造方法。
  2.我们并没有在类中定义这样的方法,为什么我们能够使用呢?这是因为
    类默认这样的一个无参数的构造器。当然,我们可以根据需要重新定义
    构造器方法,这叫做构造器方法的重载。
  3.定义构造器方法的格式:
     //无参数的构造器
    public 类名(){
    }
    //有参数的构造器
    public 类名(数据类型 参数名,....){
    //代码
    }
   }
二.方法的重载
  1.在一个类中,可以定义多个返回值数据类型和方法名相同,但参数类型、
    参数个数或参数顺序不同的方法,叫做方法的重载。
   2.当调用这些方法时,会自动调用参数相匹配的方法。
三.构造方法一普通方法的区别
  1.格式:
    构造方法  public 类名(参数可有可无){
              //代码
              }
    普通方法  public 返回值数据类型 方法名(参数可有可无){
              //代码
              } 
2.构造方法不需要返回值,而普通方法必须有返回值(当然可以为void);
  构造方法是创建一个对象,它每使用一次就会创建一个对象,而普通方法
  可以被对象多次使用。


四.this关键字
   当参数名与属性名相同时,可以使用this关键字进行区别
   如:this 属性名=参数名;

五.登录界面的开发
  1.java.awt包下的一些类
    BorderLayout        边框布局类
    FlowLayout          流式布局类
    GridLayout          网格布局类

  2.javax.swing包的一些类
    JFrame          窗体类        
    JPanel          面板类        
    JLabel          标签类         
    JTextField      文本输入框类
    JPasswordField  密码输入框类
    JComboBox       下拉列表框类
    JCheckBox       复选框类
    JButton         按钮类
下面是我刚学时学的界面,里面的很多命名等都很不规范,也有很多问题思考许久,我决定还是把它写到博客上吧。

package lesson;

public class login {
	// 定义一个普通的方法
	public void init() {
		// 实例化一个窗口对象
		javax.swing.JFrame jF = new javax.swing.JFrame("QQ登录界面");
		// 设置窗口的大小
		jF.setSize(430, 300);
		// 设置用户点击关闭按钮是程序退出
		jF.setDefaultCloseOperation(3);
		// 设置用户不可以调整窗口的大小
		jF.setResizable(false);
		// 设置窗口的位置居中
		jF.setLocationRelativeTo(null);
		// 实例化一个边框布局类
		java.awt.BorderLayout bk = new java.awt.BorderLayout();
		// 将窗体的布局设置为边框布局
		jF.setLayout(bk);
		// 实例化一个面板类
		javax.swing.JPanel mb1 = new javax.swing.JPanel();
		// 实例化一个ImageIcon的图标对象
		javax.swing.ImageIcon tb1 = new javax.swing.ImageIcon(
				"images/login.jpg");
		// 实例化一个标签对象,用来显示图标
		javax.swing.JLabel bj1 = new javax.swing.JLabel(tb1);
		// 将标签加到面板1中
		mb1.add(bj1);
		// 将面板1加到窗体中,并指明它的位置
		jF.add(mb1, java.awt.BorderLayout.NORTH);
		// 再实例化一个面板对象
		javax.swing.JPanel mb2 = new javax.swing.JPanel();
		// 实例化一个ImageIcon的图标对象
		javax.swing.ImageIcon tb2 = new javax.swing.ImageIcon("images/tx.jpg");
		// 实例化一个标签对象,用来显示图标
		javax.swing.JLabel bj2 = new javax.swing.JLabel(tb2);
		// 将标签加到面板2中
		mb2.add(bj2);
		// 将面板2加到窗体中,并指明它的位置
		jF.add(mb2, java.awt.BorderLayout.WEST);
		// 再实例化一个面板对象
		javax.swing.JPanel mb3 = new javax.swing.JPanel();
		// 实例化一个边框布局对象
		java.awt.BorderLayout bk1 = new java.awt.BorderLayout();
		// 将面板3设置为边框布局
		mb3.setLayout(bk1);
		// 实例化一个面板对象,将它加到面板3中
		javax.swing.JPanel jp1 = new javax.swing.JPanel();
		// 实例化一个标签对象
		javax.swing.JLabel bj3 = new javax.swing.JLabel("帐号");
		// 将标签加到面板jp1中
		jp1.add(bj3);
		// 实例化一个文本框对象
		javax.swing.JTextField txt1 = new javax.swing.JTextField(16);
		// 将文本框加到面板jp1中
		jp1.add(txt1);
		// 将它加到面板3中
		mb3.add(jp1, java.awt.BorderLayout.NORTH);
		// 实例化一个面板对象,将它加到面板3中
		javax.swing.JPanel jp2 = new javax.swing.JPanel();
		// 实例化一个标签对象
		javax.swing.JLabel bj4 = new javax.swing.JLabel("密码");
		// 将标签加到面板jp2中
		jp2.add(bj4);
		// 实例化一个密码输入框
		javax.swing.JPasswordField txt2 = new javax.swing.JPasswordField(16);
		// 将文本框加到面板3中
		jp2.add(txt2);
		// 将它加到面板mb2中
		mb3.add(jp2, java.awt.BorderLayout.CENTER);
		// 实例化一个面板对象,将它加到面板3中
		javax.swing.JPanel jp3 = new javax.swing.JPanel();
		// 定义一个数组
		String[] arr = { "上线", "隐身", "离开", "忙碌" };
		// 实例化一个下拉框对象
		javax.swing.JComboBox xl = new javax.swing.JComboBox(arr);
		// 将下拉框添加到面板jp3中
		jp3.add(xl);
		// 实例化一个复选框
		javax.swing.JCheckBox fx1 = new javax.swing.JCheckBox("记住密码");
		// 将复选框添加到面板jp3中
		jp3.add(fx1);
		// 实例化一个复选框
		javax.swing.JCheckBox fx2 = new javax.swing.JCheckBox("自动登录");
		// 将复选框添加到面板jp3中
		jp3.add(fx2);
		// 将它加到面板mb3中
		mb3.add(jp3, java.awt.BorderLayout.SOUTH);
		// 将面板加到窗体中,并指明它的位置
		jF.add(mb3, java.awt.BorderLayout.CENTER);
		// 再实例化一个面板对象
		javax.swing.JPanel mb4 = new javax.swing.JPanel();
		// 实例化一个边框布局对象
		java.awt.BorderLayout bk2 = new java.awt.BorderLayout();
		// 将面板4设置为边框布局
		mb4.setLayout(bk2);
		// 实例化一个面板对象,将它加到面板4中
		javax.swing.JPanel jp4 = new javax.swing.JPanel();
		// 实例化一个文本框对象
		javax.swing.JLabel txt3 = new javax.swing.JLabel("注册帐号");
		// 将文本框加到面板jp4中
		jp4.add(txt3);
		// 将它加到面板mb4中
		mb4.add(jp4, java.awt.BorderLayout.NORTH);
		// 实例化一个面板对象,将它加到面板4中
		javax.swing.JPanel jp5 = new javax.swing.JPanel();
		// 实例化一个文本框对象
		javax.swing.JLabel txt4 = new javax.swing.JLabel("找回密码");
		// 将文本框加到面板jp5中
		jp5.add(txt4);
		// 将它加到面板mb4中
		mb4.add(jp5, java.awt.BorderLayout.CENTER);
		// 将面板4加到窗体中,并指明它的位置
		jF.add(mb4, java.awt.BorderLayout.EAST);
		// 再实例化一个面板对象
		javax.swing.JPanel mb5 = new javax.swing.JPanel();
		// 实例化一个边框布局对象
		java.awt.BorderLayout bk3 = new java.awt.BorderLayout();
		// 将面板5设置为边框布局
		mb5.setLayout(bk3);
		// 实例化一个面板对象,将它加到面板5中
		javax.swing.JPanel jp6 = new javax.swing.JPanel();
		// 实例化一个按钮对象
		javax.swing.JButton jb1 = new javax.swing.JButton("多账号");
		// 将按扭添加到面板5中,并指明它的位置。
		jp6.add(jb1);
		// 实例化一个按钮对象
		javax.swing.JButton jb2 = new javax.swing.JButton("设置");
		// 将按扭添加到面板5中,并指明它的位置。
		jp6.add(jb2);
		// 将它加到面板mb5中
		mb5.add(jp6, java.awt.BorderLayout.WEST);
		// 实例化一个面板对象,将它加到面板5中
		javax.swing.JPanel jp7 = new javax.swing.JPanel();
		// 实例化一个按钮对象
		javax.swing.JButton jb3 = new javax.swing.JButton("登录");
		//设置事件源的动作命令值。
		jb3.setActionCommand("Login");
		// 将按扭添加到面板5中,并指明它的位置。
		jp7.add(jb3);
		// 将它加到面板mb5中
		mb5.add(jp7, java.awt.BorderLayout.EAST);
		// 将面板4加到窗体中,并指明它的位置
		jF.add(mb5, java.awt.BorderLayout.SOUTH);
		// 将窗体设为可见
		jF.setVisible(true);
		
		
		/*给事件源jb3添加动作监听器方法*/
		//实例化一个事件处理类的对象,该类是ActionListener接口的子类
		LoginListener ll = new LoginListener(txt1,txt2);
		//给事件源添加动作监听器方法,绑定事件处理类的对象ll
		jb3.addActionListener(ll);
	}
}

 监听器的代码

public class LoginListener implements ActionListener {

	private JTextField txt1;//声明一个帐号输入框对象属性
	private JPasswordField txt2;//声明一个密码输入框对象属性
	
	/**
	 * 定义一个构造方法,带了两个参数
	 * @param txt1帐号输入框对象
	 * @param txt2密码输入框对象
	 */
	public LoginListener(JTextField txt1, JPasswordField txt2) {
		//将参数赋值给属性
		this.txt1 = txt1;
		this.txt2 = txt2;
	}

	/**
	 * 动作事件发生后,会执行的方法,事件处理类的方法
	 */
	public void actionPerformed(ActionEvent e) {
		String name = txt1.getText();//得到帐号输入框的值
		String pwd = txt2.getText();//得到密码输入框中的值
		System.out.println("你点击了"+e.getActionCommand()+"     帐号:"+name+"      密码:"+pwd);
		//判断输入的帐号和密码是否都是admin
		if(name.equals("admin") && pwd.equals("admin")){
			//显示一个画图程序的界面
			JFrame draw = new JFrame("画图程序");
			draw.setSize(600, 500);
			draw.setLocationRelativeTo(null);
			draw.setDefaultCloseOperation(2);
			draw.setVisible(true);
		}else{
	JOptionPane.showMessageDialog(null,"你输入的帐号或密码错误,请重新输入!");
		}
	}

}

 测试代码

public class dax{
  //主函数
  public static void main(String [] args){
     //实例化一个login对象
     login lo=new login();
      
     //调用该对象的方法 
     lo.init();
     
   }

}

这是运行的界面 



 
六.值传递和引用传递
注意:String用来定义字符串或字符数组,但它却不是基本的数据类型,它属于一个类。
1.java中的八个基本数据类型
  long(长整型)  int(整型)  short(短整形)  char(字符型)  double(双精度浮点型)  float(单精  度浮点型)  boolean(布尔值)  byte(字节)
  以上八种数据类型作为参数传递时,是以传值的方式进行传递。
2.类类型(包括类、数组)
  它们作为参数传递时,是以传址(地址)的方式进行传递。

七.体会
    通过本次学习,基本掌握了什么是构造方法和构造方法的重载,并且能够
  知道构造方法和普通方法的区别。知道this关键字是用来区分属性和参数,
  当然还有其他的用途,以后会学到。最重要的是了解了登陆界面的开发,
  以及掌握了一些常用的界面组件的使用方法。








 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值