编程笔记7

2018年7月24日星期二

今天在昨天的基础上继续,当用户输入正确的用户名和密码时候,则登陆成功。

这里需要添加一个actionListener,当监听到按钮动作后,则进行判断。如果用户名和密码都符合要求,则login成功。

这里学习this的用法。this是什么呢?

this是指向当前对象的引用。为什么要用this呢?

在很多时候没有新建对象,但需要使用该类中的方法。但是方法必须要新建对象才能使用,这个时候java设计者,就产生了this。比如,在为创建对象前,使用this.setSize(200,300);等待对象新建的时候:Frame w=new JFrame(),才用w代替this。

java虽然是面向对象的语言,但是很多时候还是用了面向过程的方式。

在类中,有需要初始化的,可以放在构造函数中。

有些变量如果在整个类中使用,则需要定义成静态成员,并且放在方法之外使用。

代码如下:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;


public class QQLogin{

public static void main(String args[]){

QQPanel w=new QQPanel();

w.setVisible(true);

}

}

class QQPanel extends JFrame implements ActionListener{

static JTextField txtUser=new JTextField();

static JPasswordField psd=new JPasswordField();

public QQPanel(){

System.out.println("ddd");

this.setSize(300,160);

//new component

JLabel lbUser=new JLabel("UserName:");

JLabel lbPsd=new JLabel("PassWord:");

JButton btnLogin=new JButton("Login");

JButton btnRegister=new JButton("Register");

JButton btnCancel=new JButton("Cancel");

//new pan1

JPanel pan1=new JPanel();

pan1.setLayout(new GridLayout(2,2));

//add component to the pan1

pan1.add(lbUser);

pan1.add(txtUser);

pan1.add(lbPsd);

pan1.add(psd);

//new pan2

JPanel pan2=new JPanel();

pan2.setLayout(new FlowLayout());

//add component to the pan2

pan2.add(btnLogin);

pan2.add(btnRegister);

pan2.add(btnCancel);

//register actionListener

btnLogin.addActionListener(this);

this.setLayout(new BorderLayout());

this.add(pan1,BorderLayout.CENTER);

this.add(pan2,BorderLayout.SOUTH);

}

public void actionPerformed(ActionEvent e){

if(e.getActionCommand().equals("Login")){

if(txtUser.getText().equals("aaa")&&psd.getText().equals("123")){

System.out.println("login");

this.setVisible(false);

}

}

}

}

另外,还有一个问题,什么是super?

super是指向父类对象的引用,而this是指向当前对象的引用。

为什么要有super呢?

比如,super.paint(),是调用父类的方法。

比如,在游戏中,英雄的角色,会有野兽,魔法师等,英雄是野兽的继承,如果英雄a=new野兽(),那么a.方法,会是使用英雄的方法还是野兽的呢?

如果过该方法在英雄中有,在野兽中也有,那么调用的是野兽的方法。这就展现了英雄的多态性。

注意,如果Father  p=new  Son();如果p.方法,该方法就是子类的方法,如果p.变量,那么调用的是父类的变量。

V�p

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 记事本程序展示结果图: 1.建立了一个类Notepad extends JFrame implements Act...
    可乐W阅读 1,812评论 0 0
  • java是面向过程的编程语言:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越...
    Java小辰阅读 3,086评论 0 17
  • 周末看了两部电影(当然是宅在家看的),一部法国的喜剧片《小楼里的奇幻生活》,一部由舞台剧改编的《驴得水》。 《小楼...
    珏音Raya阅读 3,864评论 0 0
  • 就在刚刚有个老师给我打电话,他说他是推销量子产品的,还说跟着他一起做,加入团队,会...
    N1115丁丽阅读 140评论 0 0
  • 业务领导大部分精力在“事为先”,昨天我大概捋成了“5+1”的结构:业务、战略、机制、执行、解决问题及信息对称。“人...
    沈磊阅读 249评论 0 0