import java.awt.*;
import javax.swing.*;
import javax.swing.JFrame;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class QQ extends JFrame //继承JFrame
{
QQ() //构造函数
{
display();//调用display()函数
}
JButton btn1;
JButton btn2;
JTextField jtf1;
JPasswordField jpf1; //密码文本
class MyListener extends WindowAdapter //适配器 是扩展 不需要覆盖WindowAdapter中的所有方法 功能代码较多
{
public void windowClosing(WindowEvent e)
{
System.out.println("windowClosing");
int res = JOptionPane.showConfirmDialog(null,"是否退出程序应用","提示", JOptionPane.YES_NO_OPTION); //弹出消息框
System.out.println("res =" + res);
if(res == 0)
{
System.out.println("退出");
System.exit(1);// 退出
System.out.println("退出1"); //不输出 因为exit先执行
}
else if(res == 1)
{
System.out.println("不退出");
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
//System.exit(1);// 退出
// 不退出
}
}
}
class BtnAction implements ActionListener //btn事件
{
public void actionPerformed(ActionEvent e)
{
System.out.println("actionPerformed");
if(jtf1.getText().equals("jk") && jpf1.getText().equals("jk"))
{
System.out.println("OK");
dispose();
(new JFrame("主窗口")).setVisible(true);
}
else
{
System.out.println("Error");
JOptionPane.showConfirmDialog(null,"密码错误","提示", JOptionPane.DEFAULT_OPTION);
}
}
}
class BtnAction2 implements ActionListener //内部类
{
public void actionPerformed(ActionEvent e)
{
Object o = e.getSource();
JButton b = (JButton)o; //强制类型转换
System.out.println("芝麻开门" + btn2.getText()); //类的成员/函数,可以在内部类中使用 if(b == btn2) //b.getSource == "注册"
{
jtf1.setText("");
jpf1.setText("");
}
}
}
public void display()
{
//JFrame frm = new JFrame(); //窗体
ImageIcon img1 = new ImageIcon("timg.gif"); //背景
JLabel background1 = new JLabel(img1);
this.getLayeredPane().add(background1, new Integer(Integer.MIN_VALUE));
//background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
background1.setBounds(0, 0, 425, 450);
ImageIcon img2 = new ImageIcon("33.gif");
JLabel background2 = new JLabel(img2);
this.getLayeredPane().add(background2, new Integer(Integer.MIN_VALUE));
background2.setBounds(0, 0, img2.getIconWidth(), img2.getIconHeight()); jtf1 = new JTextField(30); //文本
//jtf1.setColumns(10);
jtf1.setSize(200,35);
jtf1.setLocation(130,130);
jpf1 = new JPasswordField(30); //密码文本
//jpf1.setEchoChar('#'); 设置密码文本内容
jpf1.setSize(200,35);
jpf1.setLocation(130,180); JLabel lab1 = new JLabel("账号:"); //标题
Font fnt = new Font("Serief",Font.ITALIC+Font.BOLD,15);
lab1.setFont(fnt);
lab1.setBackground(Color.BLUE); //label的背景颜色
lab1.setOpaque(true); //label是否透明
lab1.setForeground(Color.YELLOW); //label前景色
JLabel lab2 = new JLabel("密码:");
lab1.setSize(50,30);
lab2.setSize(50,30);
lab1.setLocation(70,130);
lab2.setLocation(70,180);
btn1 = new JButton("登录");
btn1.setBounds(100,230,180,50);
Image im1 = (new ImageIcon("QQ.png")).getImage(); //图标
this.setIconImage(im1);
//ImageIcon im2 = new ImageIcon("77.png"); //图标
ImageIcon im2 = new ImageIcon("./77.png");
btn1.setIcon(im2);
this.setLayout(null); //布局--绝对布局
MyListener ltn = new MyListener(); //监听
this.addWindowListener(ltn);
BtnAction act = new BtnAction(); //btn事件
btn1.addActionListener(act);
btn2 = new JButton("重置");
btn2.setBounds(300,230,100,50);
BtnAction2 act2 = new BtnAction2();
btn2.addActionListener(act2);
//frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(425,325);
this.setLocation(700,500);
this.setTitle("QQ登录");
this.setResizable(false);
this.add(btn1);
this.add(btn2);
this.add(lab1);
this.add(lab2);
this.add(jpf1);
this.add(jtf1);
this.add(background1);
this.add(background2);
this.setVisible(true);
System.out.println("OK");
}
public static void main(String[] args)
{
QQ Event1 = new QQ();
System.out.println("OK");
}
}

JAVA的继承,构造函数,窗体的更多相关文章

  1. java内部类继承--构造函数传参

    /: innerclasses/InheritInner.java // Inheriting an inner class. class WithInner { class Inner {} } / ...

  2. java中继承,子类是否继承父类的构造函数

    java中继承,子类是否继承父类的构造函数 java继承中子类是不会继承父类的构造函数的,只是必须调用(隐式或者显式) 下面来看例子: public class TestExtends { publi ...

  3. Java面向对象㈡ -- 继承与多态

    Java的继承是通过extends和implement来实现的,Java不支持多继承,但是Java支持多层继承以及多实现(接口).Java继承有一个关键字super是用来指向父类.Java继承衍生出覆 ...

  4. java的继承机制

    这次我想深入探究以下java里类的继承机制.       我们知道,继承是java设计里的一个失败的地方.高司令说过:如果让他重新设计java的话,他会把继承去掉.而java里继承到底怎么了,会这么不 ...

  5. Java面向对象 继承(下)

     Java面向对象   继承(下) 知识概要:               (1)抽象类 1.1 抽象类概述                            1.2 抽象类的特点       ...

  6. Java面向对象 继承(上)

       Java面向对象 继承 知识概要:         (1)继承的概述 (2)继承的特点 (3)super关键字 (4)函数覆盖 (5) 子类的实例化过程 (6) final关键字 (1)继承 ...

  7. [ Java学习基础 ] Java的继承与多态

    看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...

  8. Java开发知识之Java的继承多态跟接口*

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

  9. Java基础八--构造函数

    Java基础八--构造函数 一.子父类中构造函数的特点 1.1 为什么在子类构造对象时,发现,访问子类构造函数时,父类也运行了呢? 原因是:在子类的构造函数中第一行有一个默认的隐式语句. super( ...

  10. 谈谈java中的构造函数

    from 本篇博文主要是为新手.对java语言感兴趣的人和那些没有系统学习过java基础知识的人进行一个总结,在文章中对构造函数进行了较为详细的说明和讨论,也包含了我个人对于java面向对象中构造函数 ...

随机推荐

  1. Flash与 Javascript 交互

    网页加载时立即调用 ExternalInterface.addCallback中定义的函数会失败,放到按键中调用正常. 推测:可能是flash对象加载时间略长,网页加载到js时,flash对象尚未初始 ...

  2. ubuntu中安装ftp服务器

    1. 实验环境 ubuntu14.04 2.vsftpd介绍 vsftpd 是“very secure FTP daemon”的缩写,是一款在Linux发行版中最受推崇的FTP服务器程序,安全性是它的 ...

  3. html阶段测试

    1.简述src和href的区别? 2.在html页面的head中定义属性<meta http-equiv="X-UA-Compatible" content="IE ...

  4. 【疑问】用python写登录验证遇到的问题

    最近开始断断续续学习python,今天加入博客园,作为新人,和各位老师们讨教了,以后多多照顾!为了大家能看清楚所以就截图了,文末尾附源码,说不定会有那位老师给我指教一番.############### ...

  5. Socket简单实现数据交互及上传

    声明:本文为原创,如需转载请说明出处:http://www.cnblogs.com/gudu1/p/7669175.html 首先为什么要写这个呢?因为在几个月之前我还使用Socket做一个小项目,而 ...

  6. NDK Jni 开发(1)

    1. 学习地址 http://my.oschina.net/lifj/blog/177087 http://www.cnblogs.com/devinzhang/archive/2012/02/29/ ...

  7. Hadoop(八)Java程序访问HDFS集群中数据块与查看文件系统

    前言 我们知道HDFS集群中,所有的文件都是存放在DN的数据块中的.那我们该怎么去查看数据块的相关属性的呢?这就是我今天分享的内容了 一.HDFS中数据块概述 1.1.HDFS集群中数据块存放位置 我 ...

  8. Maven Install指令构建时出现找不到符号

    检查引用的JRE编译的版本,可能由于JRE编译版本太低导致的  

  9. PhiloGL学习(1)——场景创建及方块欲露还羞出水面

    前言 上一篇文章中介绍了我认识PhiloGL框架的机缘以及初步的探讨(见JS前端三维地球渲染--中国各城市航空路线展示),在此文中仅仅对此框架进行了简单介绍并初步介绍了一些该框架的知识.首先三维这个东 ...

  10. python字符串,列表,字符串,元组,集合的一些方法

    字符串方法 __contains__ #等同in name = 'erroy' result = name.__contains__('er') #判断元素是否包含er print(result) T ...