zoukankan      html  css  js  c++  java
  • JAVA的继承,构造函数,窗体

      1 import java.awt.*;
      2 import javax.swing.*;
      3 import javax.swing.JFrame;
      4 import java.awt.event.WindowListener;
      5 import java.awt.event.WindowEvent;
      6 import java.awt.event.WindowAdapter;
      7 import java.awt.event.ActionListener;
      8 import java.awt.event.ActionEvent;
      9 class QQ extends JFrame   //继承JFrame
     10 {
     11     QQ()  //构造函数
     12     {
     13         display();//调用display()函数
     14     }
     15     JButton btn1;
     16     JButton btn2;
     17     JTextField jtf1;
     18     JPasswordField jpf1; //密码文本
     19     class MyListener extends WindowAdapter //适配器   是扩展  不需要覆盖WindowAdapter中的所有方法 功能代码较多
     20     {
     21         public void windowClosing(WindowEvent e)
     22         {
     23             System.out.println("windowClosing");
     24             int res = JOptionPane.showConfirmDialog(null,"是否退出程序应用","提示", JOptionPane.YES_NO_OPTION); //弹出消息框
     25             System.out.println("res =" + res);
     26             if(res == 0)
     27             {
     28                 System.out.println("退出");
     29                 System.exit(1);// 退出
     30                 System.out.println("退出1"); //不输出  因为exit先执行
     31             }
     32             else if(res == 1)
     33             {
     34                 System.out.println("不退出");
     35                 setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
     36                 //System.exit(1);// 退出
     37                 // 不退出
     38             }
     39         }
     40     }
     41     class BtnAction implements ActionListener  //btn事件
     42     {
     43         public void actionPerformed(ActionEvent e)
     44         {
     45             System.out.println("actionPerformed");
     46             if(jtf1.getText().equals("jk") && jpf1.getText().equals("jk"))
     47             {
     48                 System.out.println("OK");
     49                 dispose();
     50                 (new JFrame("主窗口")).setVisible(true);
     51             }
     52             else
     53             {
     54                 System.out.println("Error");
     55                 JOptionPane.showConfirmDialog(null,"密码错误","提示", JOptionPane.DEFAULT_OPTION);
     56             }
     57         }
     58     }
     59     class BtnAction2 implements ActionListener   //内部类
     60     {
     61         public void actionPerformed(ActionEvent e)
     62         {
     63             Object o = e.getSource();
     64             JButton b = (JButton)o;  //强制类型转换
     65             System.out.println("芝麻开门" + btn2.getText());  //类的成员/函数,可以在内部类中使用
     66             
     67             if(b == btn2) //b.getSource == "注册"
     68             {
     69                 jtf1.setText("");
     70                 jpf1.setText("");
     71             }
     72         }
     73     }
     74     public void display()
     75     {
     76         //JFrame frm = new JFrame(); //窗体
     77         ImageIcon img1 = new ImageIcon("timg.gif"); //背景
     78         JLabel background1 = new JLabel(img1);
     79         this.getLayeredPane().add(background1, new Integer(Integer.MIN_VALUE)); 
     80         //background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
     81         background1.setBounds(0, 0, 425, 450);
     82         ImageIcon img2 = new ImageIcon("33.gif"); 
     83         JLabel background2 = new JLabel(img2);
     84         this.getLayeredPane().add(background2, new Integer(Integer.MIN_VALUE)); 
     85         background2.setBounds(0, 0, img2.getIconWidth(), img2.getIconHeight());
     86         
     87         jtf1 = new JTextField(30); //文本
     88         //jtf1.setColumns(10);
     89         jtf1.setSize(200,35);
     90         jtf1.setLocation(130,130);
     91         jpf1 = new JPasswordField(30); //密码文本
     92         //jpf1.setEchoChar('#');     设置密码文本内容
     93         jpf1.setSize(200,35);
     94         jpf1.setLocation(130,180);
     95         
     96         JLabel lab1 = new JLabel("账号:"); //标题
     97         Font fnt = new Font("Serief",Font.ITALIC+Font.BOLD,15);
     98         lab1.setFont(fnt);
     99         lab1.setBackground(Color.BLUE); //label的背景颜色
    100         lab1.setOpaque(true); //label是否透明
    101         lab1.setForeground(Color.YELLOW); //label前景色
    102         JLabel lab2 = new JLabel("密码:");
    103         lab1.setSize(50,30);
    104         lab2.setSize(50,30);
    105         lab1.setLocation(70,130);
    106         lab2.setLocation(70,180);
    107         btn1 = new JButton("登录");
    108         btn1.setBounds(100,230,180,50);
    109         Image im1 = (new ImageIcon("QQ.png")).getImage(); //图标
    110         this.setIconImage(im1);
    111         //ImageIcon im2 = new ImageIcon("77.png"); //图标
    112         ImageIcon im2 = new ImageIcon("./77.png");
    113         btn1.setIcon(im2);
    114         this.setLayout(null);  //布局--绝对布局
    115         MyListener ltn = new MyListener();  //监听
    116         this.addWindowListener(ltn);
    117         BtnAction act = new BtnAction();    //btn事件
    118         btn1.addActionListener(act);
    119         btn2 = new JButton("重置");
    120         btn2.setBounds(300,230,100,50);
    121         BtnAction2 act2 = new BtnAction2();
    122         btn2.addActionListener(act2);
    123         //frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    124         this.setSize(425,325);
    125         this.setLocation(700,500);
    126         this.setTitle("QQ登录");
    127         this.setResizable(false);        
    128         this.add(btn1);
    129         this.add(btn2);
    130         this.add(lab1);
    131         this.add(lab2);
    132         this.add(jpf1);
    133         this.add(jtf1);
    134         this.add(background1);
    135         this.add(background2);
    136         this.setVisible(true);
    137         System.out.println("OK");
    138     }
    139     public static void main(String[] args)
    140     {
    141         QQ Event1 = new QQ();
    142         System.out.println("OK");
    143     }
    144 }

  • 相关阅读:
    数学基础之梯度
    背包九问心得
    如何判断机器是大端机还是小端机
    Matlab学习 2021年2月10日
    数字信号处理(超浓缩版)第一天
    matlab里的数据类型
    如何学习Matlab的帮助文档?& 如何去编写帮助文档
    fprintf 和 dlmwrite 在写数据时的区别
    lateinit 延迟初始化
    data class 在 Kotlin中的定义
  • 原文地址:https://www.cnblogs.com/YUJIE666/p/6749015.html
Copyright © 2011-2022 走看看