Java学习笔记之四——仿作QQ2013登录窗口
首先说明一点的是:我现在学java才不到一个月,所以做出来的东西都很浅显。希望有高手能指导一二,再次也希望跟各位交流一下,如果您对我的代码有修改的地方,欢迎在评论里面指出,大家一起研究一起进步。还有,我现在学的只是基础,所以请先理解我有些代码的丑陋,我也会好好学的。谢谢各位大神了!
在开始之前,我先在QQ2013的登陆窗口上面截了两张图片,当然本来的登录界面是动态的,但是目前我的技术就到这里,所以只能以图片代替。
最后做出来的样子大概就是下图那样:
做出来大概就是这个样子。先说说我的思路吧。我将上面这个窗口分为三部分,分别是北部,中部,南部。北部就是那张图片,南部是一个登陆按钮,中部又分为两部分西部和中部。所以我就需要三个JPanel。一个JButton,两个JcheckBox,四个JLabel ,一个文本输入框,一个密码输入框。
因为JLabel可以直接放置图片,所以:
JLabel jlb1 = new JLabel(new ImageIcon("toubu.png"));
右边的QQ头像同上面的防止方法。
实现出来的具体代码如下:
package com.miewenzi.diaocha; /** * @author 张松 * */ import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.*; import java.awt.*; public class QQ2013 extends JFrame{ JLabel jlb1 = new JLabel(new ImageIcon("toubu.png")); JLabel jlb2 = new JLabel("<html><a href='www.qq.com'>注册账号</a>",JLabel.CENTER); JLabel jlb3 = new JLabel("<html><a href='http://www.qq.com'>找回密码</a>",JLabel.CENTER); JLabel jlb4 = new JLabel(new ImageIcon("QQ.png")); JButton jb1 = new JButton("登录"); JTextField jtf = new JTextField(10); JPasswordField jpf = new JPasswordField(10); JCheckBox jcb1 = new JCheckBox("记住密码"); JCheckBox jcb2 = new JCheckBox("自动登陆"); JPanel jp1 = new JPanel(); JPanel jp2 = new JPanel(); JPanel jp3 = new JPanel(); public QQ2013(){ jp1.add(jtf); jp1.add(jlb2); jp1.add(jpf); jp1.add(jlb3); jp1.add(jcb1); jp1.add(jcb2); jp3.add(jp2); jp3.add(jlb4); jlb4.add(jp2,BorderLayout.WEST); jp3.add(jp1,BorderLayout.CENTER); jp1.setLayout(new GridLayout(3, 3)); this.add(jb1,BorderLayout.SOUTH); this.add(jp3,BorderLayout.CENTER); this.add(jlb1,BorderLayout.NORTH); ImageIcon icon = new ImageIcon("QQ.png"); this.setIconImage(icon.getImage()); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); this.setTitle("QQ登录"); } public static void main(String[] args){ new QQ2013(); } }
其中注册账号和找回密码又超文本链接,所以我直接在JLabel中添加实现:
JLabel jlb2 = new JLabel("<html><a href='www.qq.com'>注册账号</a>",JLabel.CENTER); JLabel jlb3 = new JLabel("<html><a href='http://www.qq.com'>找回密码</a>",JLabel.CENTER);
但是有一点目前我不了解,因为在QQ面板中,注册账号和找回密码这两个都有鼠标手势,但是我想放上去却出现一点小问题:JLabel可以添加setCursor,但是我一添加程序就马上报错。我也不知道怎么解决 ,希望有大神可以指点一二。