话说有图有真相:(图片文件自己ps吧,动态网页未添加成功,后附html源码)

Java源码:

 import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException; public class Main { public static void main(String[] args) {
Main Login = new Main();
Login.init01();
} public void init01() {
// 创建窗体
Frame f = new Frame("QQ Login!");
f.setBackground(new Color(235, 242, 249));// 设置窗体背景颜色
f.setLocation(20, 20);
f.setLayout(null); // 手工布局
f.setSize(420, 330); // 设置窗口的大小 // 创建图片
JLabel labelImage = new JLabel(new ImageIcon(this.getClass().getResource("qq.png")));// 添加图片
labelImage.setSize(80, 80);// 设置图片的大小
labelImage.setLocation(40, 190);// 设置图片的绝对位置 Label ac = new Label("注册账号");
ac.setForeground(Color.blue);// 设置字体颜色
ac.setSize(50, 30);// 大小
ac.setLocation(335, 195);// 绝对位置 Label pwd = new Label("找回密码");
pwd.setForeground(Color.blue);// 字体颜色
pwd.setSize(50, 30);// 大小
pwd.setLocation(335, 225);// 绝对位置 TextField username = new TextField();
username.setSize(195, 30);// 大小
username.setLocation(130, 195);// 绝对位置 JPasswordField password = new JPasswordField();
password.setSize(195, 30);// 大小
password.setLocation(130, 225);// 绝对位置 Checkbox cb1 = new Checkbox("记住密码");
cb1.setSize(65, 20);// 大小
cb1.setLocation(130, 260);// 绝对位置 Checkbox cb2 = new Checkbox("自动登录");
cb2.setSize(65, 20);// 大小
cb2.setLocation(260, 260);// 绝对位置 JButton jbt = new JButton();
jbt.setText("登录");
jbt.setSize(195, 30);// 大小
jbt.setLocation(130, 285);// 位置
// 按钮事件
jbt.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
if (username.getText().equals("admin") && password.getText().equals("pwd")) {
// 如果用户名输入 admin 密码输入 pwd 则正确
JOptionPane.showMessageDialog(null, "登录成功", "信息提示!", JOptionPane.ERROR_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "用户名或密码错误!", "信息提示!", JOptionPane.ERROR_MESSAGE);
}
}
});
// ------------------------------------------------------------
// 虚线框中是添加网页内容
JEditorPane reportPane = new JEditorPane();
try {
reportPane.setPage("file:///F:/KaiFa/AcmTest/src/qq.html");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
reportPane.setSize(420, 170);
reportPane.setLocation(0, 0);
f.add(reportPane);
// --------------------------------------------------------------------------
// 添加各种控件到窗体中
f.add(ac);
f.add(pwd);
f.add(jbt);
f.add(username);
f.add(password);
f.add(labelImage);
f.add(cb1);
f.add(cb2);
f.setVisible(true);// 设置可见
f.addWindowListener(new WindowAdapter() // 设置关闭窗口
{
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
} }

Html源码(来自网络,若有侵犯告知删除):

 <!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>html5</title> <style type="text/css">
*{margin:0;padding:0;list-style-type:none;}
a,img{border:0;}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
</head>
<body>
<div id="container" style="width:100%;height:700px;">
<div id="anitOut"></div>
</div> <script type="text/javascript">
$(function () {
if (!window.ActiveXObject && !!document.createElement("canvas").getContext) {
$.getScript("http://im-img.qq.com/pcqq/js/200/cav.js?_=1428576021379",
function () {
var t = {
width: 1.5,
height: 1.5,
depth: 10,
segments: 12,
slices: 6,
xRange: 0.8,
yRange: 0.1,
zRange: 1,
ambient: "#525252",
diffuse: "#FFFFFF",
speed: 0.0002
};
var G = {
count: 2,
xyScalar: 1,
zOffset: 100,
ambient: "#002c4a",
diffuse: "#005584",
speed: 0.001,
gravity: 1200,
dampening: 0.95,
minLimit: 10,
maxLimit: null,
minDistance: 20,
maxDistance: 400,
autopilot: false,
draw: false,
bounds: CAV.Vector3.create(),
step: CAV.Vector3.create(Math.randomInRange(0.2, 1), Math.randomInRange(0.2, 1), Math.randomInRange(0.2, 1))
};
var m = "canvas";
var E = "svg";
var x = {
renderer: m
};
var i, n = Date.now();
var L = CAV.Vector3.create();
var k = CAV.Vector3.create();
var z = document.getElementById("container");
var w = document.getElementById("anitOut");
var D, I, h, q, y;
var g;
var r; function C() {
F();
p();
s();
B();
v();
K(z.offsetWidth, z.offsetHeight);
o()
} function F() {
g = new CAV.CanvasRenderer();
H(x.renderer)
} function H(N) {
if (D) {
w.removeChild(D.element)
}
switch (N) {
case m:
D = g;
break
}
D.setSize(z.offsetWidth, z.offsetHeight);
w.appendChild(D.element)
} function p() {
I = new CAV.Scene()
} function s() {
I.remove(h);
D.clear();
q = new CAV.Plane(t.width * D.width, t.height * D.height, t.segments, t.slices);
y = new CAV.Material(t.ambient, t.diffuse);
h = new CAV.Mesh(q, y);
I.add(h);
var N, O;
for (N = q.vertices.length - 1; N >= 0; N--) {
O = q.vertices[N];
O.anchor = CAV.Vector3.clone(O.position);
O.step = CAV.Vector3.create(Math.randomInRange(0.2, 1), Math.randomInRange(0.2, 1), Math.randomInRange(0.2, 1));
O.time = Math.randomInRange(0, Math.PIM2)
}
} function B() {
var O, N;
for (O = I.lights.length - 1; O >= 0; O--) {
N = I.lights[O];
I.remove(N)
}
D.clear();
for (O = 0; O < G.count; O++) {
N = new CAV.Light(G.ambient, G.diffuse);
N.ambientHex = N.ambient.format();
N.diffuseHex = N.diffuse.format();
I.add(N);
N.mass = Math.randomInRange(0.5, 1);
N.velocity = CAV.Vector3.create();
N.acceleration = CAV.Vector3.create();
N.force = CAV.Vector3.create()
}
} function K(O, N) {
D.setSize(O, N);
CAV.Vector3.set(L, D.halfWidth, D.halfHeight);
s()
} function o() {
i = Date.now() - n;
u();
M();
requestAnimationFrame(o)
} function u() {
var Q, P, O, R, T, V, U, S = t.depth / 2;
CAV.Vector3.copy(G.bounds, L);
CAV.Vector3.multiplyScalar(G.bounds, G.xyScalar);
CAV.Vector3.setZ(k, G.zOffset);
for (R = I.lights.length - 1; R >= 0; R--) {
T = I.lights[R];
CAV.Vector3.setZ(T.position, G.zOffset);
var N = Math.clamp(CAV.Vector3.distanceSquared(T.position, k), G.minDistance, G.maxDistance);
var W = G.gravity * T.mass / N;
CAV.Vector3.subtractVectors(T.force, k, T.position);
CAV.Vector3.normalise(T.force);
CAV.Vector3.multiplyScalar(T.force, W);
CAV.Vector3.set(T.acceleration);
CAV.Vector3.add(T.acceleration, T.force);
CAV.Vector3.add(T.velocity, T.acceleration);
CAV.Vector3.multiplyScalar(T.velocity, G.dampening);
CAV.Vector3.limit(T.velocity, G.minLimit, G.maxLimit);
CAV.Vector3.add(T.position, T.velocity)
}
for (V = q.vertices.length - 1; V >= 0; V--) {
U = q.vertices[V];
Q = Math.sin(U.time + U.step[0] * i * t.speed);
P = Math.cos(U.time + U.step[1] * i * t.speed);
O = Math.sin(U.time + U.step[2] * i * t.speed);
CAV.Vector3.set(U.position, t.xRange * q.segmentWidth * Q, t.yRange * q.sliceHeight * P, t.zRange * S * O - S);
CAV.Vector3.add(U.position, U.anchor)
}
q.dirty = true
} function M() {
D.render(I)
} function J(O) {
var Q, N, S = O;
var P = function (T) {
for (Q = 0, l = I.lights.length; Q < l; Q++) {
N = I.lights[Q];
N.ambient.set(T);
N.ambientHex = N.ambient.format()
}
};
var R = function (T) {
for (Q = 0, l = I.lights.length; Q < l; Q++) {
N = I.lights[Q];
N.diffuse.set(T);
N.diffuseHex = N.diffuse.format()
}
};
return {
set: function () {
P(S[0]);
R(S[1])
}
}
} function v() {
window.addEventListener("resize", j)
} function A(N) {
CAV.Vector3.set(k, N.x, D.height - N.y);
CAV.Vector3.subtract(k, L)
} function j(N) {
K(z.offsetWidth, z.offsetHeight);
M()
} C();
})
} else {
alert('调用cav.js失败');
}
});
</script>
</body>
</html>

【Java-GUI】homework~QQ登录界面的更多相关文章

  1. 编写Java程序,使用Swing布局管理器和常用控件,实现仿QQ登录界面

    返回本章节 返回作业目录 需求说明: 使用Swing布局管理器和常用控件,实现仿QQ登录界面 实现思路: 创建登录界面的类QQLogin,该类继承父类JFrame,在该类中创建无参数的构造方法,在构造 ...

  2. 界面编程模仿篇(QQ登录界面逼真篇)

    写了好多天的爬虫,偷空前前后后用了两天的时间(排除吃饭睡觉)写完了这个QQ登录界面,看起来还凑和着吧,如果是的大神的,莫见笑,纯属业余作品,废话先不多说,截图如下,其中第二幅图片中的红色方框部份有待完 ...

  3. JavaSwing仿QQ登录界面,注释完善,适合新手学习

    使用说明: 这是一个java做的仿制QQ登录界面,界面仅使用一个类, JDK版本为jdk-11 素材包的名字为:素材(下载)请在项目中新建一个名字为“素材”的文件夹. 素材: https://pan. ...

  4. swing实现QQ登录界面1.0( 实现了同一张图片只加载一次)、(以及实现简单的布局面板添加背景图片控件的标签控件和添加一个关闭按钮控件)

    swing实现QQ登录界面1.0( 实现了同一张图片只加载一次).(以及实现简单的布局面板添加背景图片控件的标签控件和添加一个关闭按钮控件) 代码思路分析: 1.(同一张图片仅仅需要加载一次就够了,下 ...

  5. Android菜鸟的成长笔记(3)——给QQ登录界面说So Easy

    原文:Android菜鸟的成长笔记(3)--给QQ登录界面说So Easy 上一篇:Android菜鸟的成长笔记(2)--第一个Android应用 我们前面已经做了第一个Android应用程序,虽然有 ...

  6. QQ登录界面布局

    简单的qq登录界面布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmln ...

  7. [转]Android:布局实例之模仿QQ登录界面

    Android:布局实例之模仿QQ登录界面 预览图: 准备: 1.找到模仿对象 QQ登陆界面UI下载>>>>> 2.导入工程 3.查看布局结构和使用控件 其对应效果图分布 ...

  8. 零基础~仿qq登录界面

    html代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...

  9. WPF开发实例——仿QQ登录界面

    原文:WPF开发实例--仿QQ登录界面 版权声明:本文为博主原创文章,如需转载请标明转载地址 http://blog.csdn.net/u013981858 https://blog.csdn.net ...

随机推荐

  1. OpenCV学习笔记——Mat类型数据存储

    CV_[The number of bits per item][Signed or Unsigned][Type Prefix]C[The channel number] 比如 CV_8UC3 表示 ...

  2. CS小分队第二阶段冲刺站立会议(5月30日)

    昨日成果:解决了前天遗留的问题,实现了主界面对于电脑上应用的添加和删除 遇到问题:添加和删除按钮时候,按钮位置图像与北京图片冲突,会出现闪动现象. 删除是通过右键单击出现菜单,其中有删除的选项,但是这 ...

  3. HDU 5646 DZY Loves Partition

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5646 bc:http://bestcoder.hdu.edu.cn/contests/con ...

  4. iOS-封装UIPickerView

    创建类WJPickerView继承与UIView ProvinceModel是省市的model,包含属性 @property (nonatomic, strong) NSString *provinc ...

  5. erlang init:stop()不起效

    http://blog.equanimity.nl/blog/2015/03/15/erlang-one-weird-trick-goodiebag/ http://erlang.org/piperm ...

  6. IOC与DI(xml 配置)

    Spring可以帮助我们管理软件开发过程中的对象,以及如何创建和维护对象之间的关系. Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,可以将组建的耦合度降至最低,即实现解耦 ...

  7. PHP 多维数组排序 array_multisort()

    用PHP自带array_multisort函数排序 <?php $data = array();    $data[] = array('volume' => 67, 'edition' ...

  8. ASP.NET 页面访问控制

    request常用对象和方法: @属性:1.quary string,获取通过URL路径传来的数据 2.Form,获取通过表单提交传输的数据 3.servervariables,获取Web服务器变量的 ...

  9. Centos 7 环境下,如何使用 Apache 实现 SSL 虚拟主机 双向认证 的详细教程:

    1. testing ! ... 1 1 原文参考链接: http://showerlee.blog.51cto.com/2047005/1266712 很久没有更新LAMP的相关文档了,刚好最近单位 ...

  10. java map 当key相同的时候 最后一个覆盖最近的一个值