初学者---学写高仿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 ***
*/
附加:
内存分配问题:
- 初学者---学写高仿QQ界面
- Android初学者仿QQ聊天软件APP (一) 登录界面
- QQ界面
- [安卓初学者实验]实现一个简单仿qq登陆界面
- QQ的界面
- QQ登录界面
- QQ界面模拟----(1)
- QQ邮箱界面解析
- QQ登录界面
- QQ界面实现 2
- QQ界面实现 3
- qq界面编程资料
- 仿QQ界面
- DirectUI 与 QQ界面
- 类似QQ展开界面
- QQ登陆界面
- QQ登录界面布局
- QQ登陆界面
- 全面的Android文件目录解析和获取方法(包含对6.0系统的说明)
- 对JVM的一些理解
- 喊话样本
- 理解集群、负载均衡
- boostrap layui 等前端开发异常记录
- 初学者---学写高仿QQ界面
- 构建负载均衡服务器之一 负载均衡与集群详解
- 关于session 与 cookie
- 321酷生活导航第一期:AIDN(js和flash类的小游戏)
- Android 页面惯性回弹效果,Nested接口接口简单实现。
- C语言 找出字符串中出现次数最多的字符
- [Mongodb]mongodb import json
- ZED使用ORB_SLAM2
- Entity to index is not an @Indexed entity: