博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA的继承,构造函数,窗体
阅读量:5155 次
发布时间:2019-06-13

本文共 5461 字,大约阅读时间需要 18 分钟。

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 }

转载于:https://www.cnblogs.com/YUJIE666/p/6749015.html

你可能感兴趣的文章
51 Nod 阶乘后面0的数量
查看>>
如何成为编程高手
查看>>
【题解】洛谷P1283 平板涂色(搜索+暴力)
查看>>
BDD(行为驱动开发)
查看>>
socket
查看>>
love2d杂记4--有用的辅助库
查看>>
JAVA中properties基本用法
查看>>
MVC面试问题与答案
查看>>
jQuery分析(3) - jQuery.fn.init
查看>>
手动安装vue-devtools
查看>>
平衡二叉树【学习笔记】
查看>>
haproxy开启日志功能
查看>>
HorizontalScrollView 横向显示图片
查看>>
大道至简第四章读后感
查看>>
对象的动态特性
查看>>
析构函数 p157
查看>>
奇异值分解SVD应用——LSI
查看>>
Java-编程规范与代码风格
查看>>
关于 SAXParseException Content is not allowed in Prolog (前言中不允许有内容)
查看>>
.NET 动态向Word文档添加数据
查看>>