初学者---学写高仿QQ界面

来源:互联网 发布:mysql备份语句 编辑:程序博客网 时间:2024/06/08 18:41

使用到的工具

     1 )java.awt    //用于创建用户界面和绘制图形图像的所有类

    2)java.swing    //java的GUI工具包


具体的语法

    1)JFrame ***=new JFrame();   //创建窗体对象

    2)***.setSize(x, y);                   //设置窗体大小

    3)***.setLayout();                    //设置窗体布局

    4)***.setUndecorated(ture);    //去除窗体边框

    5)***.setLocationRelativeTo(null);    //设置窗体居中

    6)ImageIcon *** = new ImageIcon("图片位置+图片名");    //创建图片对象

    7)JLabel *** = new JLabel();          //创建标签对象

    8)JTextField *** = new JTextField();       //文本输入框

    9)JPasswordField *** = new JPasswordField();    //密码输入框

    10)JCheckBox *** = new JCheckBox();            //创建复选框对象

    11)JButton *** = new JButton();          //创建按钮对象

    12)***.setVisible(true);                       //设置窗口可见

    13) ActionListener listener = new ActionListener(){}               //创建一个监听器对象, ActionListener是一个接口,可通过匿名内部类实现功能

    14)JOptionPane.showMessageDialog(null, "***");                      //弹出窗口语句


匿名内部类

匿名内部类也就是没有名字的内部类

正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写

但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口

      

  interface A(){              void sduty();        } 问如何得到A 的对象?A a = new A();      //错误得到A 的对象的办法有两种:①class B implements A {            void sduty(){具体实现步骤};}  A a = new B();//OK,继承一个父类,并有具体实现步骤,自动转型②A a = new A(){           void   study(){具体实现步骤};}//OK,适用匿名内部类获取A的对象


具体实现代码:

import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;/** * 高仿QQ登陆界面 * @author *** */public class QQ2018 {   public void showUI(){    //创建窗体对象    JFrame QQ=new JFrame("QQ2018");    //设置窗口大小            QQ.setSize(1071, 825);            //设置窗体布局为绝对布局            QQ.setLayout(null);            //去窗体边框            QQ.setUndecorated(true);            //设置窗体居中            QQ.setLocationRelativeTo(null);            //创建顶部图片对象            ImageIcon imageTop = new ImageIcon("image/head.png");            JLabel labelTop = new JLabel();            labelTop.setIcon(imageTop);            labelTop.setBounds(0, 0, 1071, 450);            QQ.add(labelTop);            //创建头像图片对象            ImageIcon imagePort= new ImageIcon("image/portrait.png");            JLabel labelPort = new JLabel();            labelPort.setIcon(imagePort);            labelPort.setBounds(100,460,235,234);            QQ.add(labelPort);            //设置字体            Font font = new Font("宋体",Font.BOLD,30);            //创建账号标签            /*JLabel username = new JLabel(“账    号:”);            username.setBounds(55,460,50,50);            QQ.add(username);*/            //创建账号输入框            JTextField fieldUser = new JTextField();            fieldUser.setFont(font);            fieldUser.setBounds(335,475 , 483, 80);            QQ.add(fieldUser);            //添加--注册账号--标签            JLabel labelEnroll = new JLabel();            labelEnroll.setText("注册帐号");            labelEnroll.setFont(font);            labelEnroll.setForeground(Color.blue);//设置文字的颜色            labelEnroll.setBounds(830,475,150,80);            QQ.add(labelEnroll);            //创建密码标签           /* JLabel password = new JLabel("密    码:");            QQ.add(password);*/            //创建密码输入框            JPasswordField fieldPass = new JPasswordField();            fieldPass.setFont(font);            fieldPass.setBounds(335,555,483,80);            QQ.add(fieldPass);          //添加--找回密码--标签            JLabel labelMemo = new JLabel();            labelMemo.setText("找回密码");            labelMemo.setFont(font);            labelMemo.setForeground(Color.blue);//设置文字的颜色            labelMemo.setBounds(830,555,150,80);            QQ.add(labelMemo);            //创建复选框---记住密码----自动登录            /*JCheckBox box1 = new JCheckBox();            box1.setText("记住密码");            box1.setBounds(335,635,100,64);            QQ.add(box1);            JCheckBox box2 = new JCheckBox();            box2.setText("自动登录");            box2.setBounds(735,635,100,64);            QQ.add(box2);*/            //创建复选框图片对象            ImageIcon imageCheck = new ImageIcon("image/check.png");            JLabel labelCheck = new JLabel();            labelCheck.setIcon(imageCheck);            labelCheck.setBounds(335,635,483,82);            QQ.add(labelCheck);                        //创建登录按钮            JButton buttonLogin = new JButton();            ImageIcon imageLogin = new ImageIcon("image/login.png");            buttonLogin.setIcon(imageLogin);            buttonLogin.setBounds(335,725,483,70);            QQ.add(buttonLogin);            //创建左下角图片对象            ImageIcon imageLd = new ImageIcon("image/add.png");            JLabel labelLd = new JLabel();            //JButton buttonLd = new JButton();            labelLd.setIcon(imageLd);            labelLd.setBounds(0,754,90,71);            //labelLd.setOpaque(false);            QQ.add(labelLd);            //创建右下角图片对象            ImageIcon imageRd = new ImageIcon("image/QR.png");            JLabel labelRd = new JLabel();            //JButton buttonRd = new JButton();            labelRd.setIcon(imageRd);            labelRd.setBounds(937,745,134,80);            QQ.add(labelRd);                        //设置窗口可见            QQ.setVisible(true);                        //创建按钮点击事件监听对象            ActionListener listener = new ActionListener() {            //创建点击后执行方法            public void actionPerformed(ActionEvent e) {            //获取用户输入的信息            String username = fieldUser.getText();            String password = fieldPass.getText();            //设定一个账号和密码            String un = new String("2632913471");            String pw = new String("xyt123");            //判断            if(username.equals(un)&&password.equals(pw)) {            QQ.setVisible(false);            showLoginUI();            }else {            JOptionPane.showMessageDialog(null, "登录失败,请重新输入账号或密码!");            }                                                }            };            buttonLogin.addActionListener(listener);            }//点击后的界面public void showLoginUI() {//创建窗体对象JFrame loginUI = new JFrame();//设置窗体名loginUI.setTitle("我的QQ");//设置窗体大小loginUI.setSize(622,1485);//去除窗体边框loginUI.setUndecorated(true);        //设置窗体居中loginUI.setLocationRelativeTo(null);//添加图片对象ImageIcon imageUI = new ImageIcon("image/loginUI.png");JLabel labelUI = new JLabel();labelUI.setIcon(imageUI);labelUI.setBounds(0,0,622,1485);loginUI.add(labelUI);//设置窗体可见loginUI.setVisible(true);}//主函数    public static void main(String  args[]) {    QQ2018 qq=new QQ2018();    qq.showUI();        }}
一种注释方法
           /**

   *注释内容

   *@author  ***

   */



附加:

内存分配问题:


  


原创粉丝点击