日期:2014-05-20  浏览次数:20902 次

java做的qq登陆界面不能显示出密码那个框
/**
 * 仿制QQ登陆界面
 */
package UI;
import javax.swing.*;

import java.awt.*;
public class LoginQQ extends JFrame{
//定义常用的组件
//北部的区域的JLabel
JLabel jl1;
JPanel jp5;
//南部区域
JButton jb1,jb2,jb3;
JPanel jp1;
//中部区域
JTabbedPane jtp;//选项卡窗格
JPanel jp2,jp3,jp4;
JLabel jl2,jl3,jl4,jl5;
//号码文本框
JTextField jtf1;
//密码
JPasswordField jpf;
//清除号码的Button
JButton jb4;
//隐身,登陆
JCheckBox jcb1,jcb2;

public static void main(String[] args) {
LoginQQ login=new LoginQQ();

}
//创造组件的操作
public LoginQQ(){
jl2=new JLabel("QQ号码:",JLabel.CENTER);
jl3=new JLabel("QQ密码:",JLabel.CENTER);
jl4=new JLabel("忘记密码",JLabel.CENTER);
jl4.setFont(new Font("宋体",Font.PLAIN,12));//设置字体样式
jl4.setForeground(Color.BLUE);//设置字体的颜色
jl5=new JLabel("<html><a href='www.qq.com'>申请密码保护</a></html>");
//当鼠标移动到上边时候变成一只手
jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
//输入号码框
jtf1=new JTextField();
//输入密码框
jpf=new JPasswordField();

jb4=new JButton("删除账号");
//复选框的操作
jcb1=new JCheckBox("隐身登陆");
jcb2=new JCheckBox("记住密码");

//北部区域
jl1=new JLabel(new ImageIcon("images/touxiang.jpg"));
jp5=new JPanel();
jp5.add(jl1);


//南部区域
jp1=new JPanel();

jb1=new JButton("登陆");
jb2=new JButton("取消");
jb3=new JButton("向导");

jp1.add(jb1);
jp1.add(jb2);
jp1.add(jb3);


//中部区域
jtp=new JTabbedPane();
jp2=new JPanel();
jp3=new JPanel();
jp4=new JPanel();
jp3.setBackground(Color.red);
jp4.setBackground(new Color(0,0,255));

//给面板添加到选项卡窗格上
jtp.add("QQ号码",jp2);
jtp.add("手机号码",jp3);
jtp.add("电子邮件",jp4);

jp2.setLayout(new GridLayout(3,3));

jp2.add(jl2);
jp2.add(jtf1);
jp2.add(jb4);

jb2.add(jl3);
jb2.add(jpf);
jp2.add(jl4);

jp2.add(jcb1);
jp2.add(jcb2);
jp2.add(jl5);

this.add(jp1,BorderLayout.SOUTH);
this.add(jp5,BorderLayout.NORTH);
this.add(jtp,BorderLayout.CENTER);

//展现组件
this.setIconImage(new ImageIcon("images/icon.jpg").getImage());
this.setTitle("腾讯qq");
this.setResizable(false);
this.setSize(300, 250);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);


}

}


------解决方案--------------------
布局方式
------解决方案--------------------
Java code

/**
 * 仿制QQ登陆界面
 */


import javax.swing.*;

import java.awt.*;

public class LoginQQ extends JFrame {
    // 定义常用的组件
    // 北部的区域的JLabel
    JLabel jl1;
    JPanel jp5;
    // 南部区域
    JButton jb1, jb2, jb3;
    JPanel jp1;
    // 中部区域
    JTabbedPane jtp;// 选项卡窗格
    JPanel jp2, jp3, jp4;
    JLabel jl2, jl3, jl4, jl5;
    // 号码文本框
    JTextField jtf1;
    // 密码
    JPasswordField jpf;
    // 清除号码的Button
    JButton jb4;
    // 隐身,登陆
    JCheckBox jcb1, jcb2;

    public static void main(String[] args) {
        LoginQQ login = new LoginQQ();

    }

    // 创造组件的操作
    public LoginQQ() {
        jl2 = new JLabel("QQ号码:", JLabel.CENTER);
        jl3 = new JLabel("QQ密码:", JLabel.CENTER);
        jl4 = new JLabel("忘记密码", JLabel.CENTER);
        jl4.setFont(new Font("宋体", Font.PLAIN, 12));// 设置字体样式
        jl4.setForeground(Color.BLUE);// 设置字体的颜色
        jl5 = new JLabel("<html><a href='www.qq.com'>申请密码保护</a></html>");
        // 当鼠标移动到上边时候变成一只手
        jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        // 输入号码框
        jtf1 = new JTextField(8);
        // 输入密码框
        jpf = new JPasswordField(8);

        jb4 = new JButton("删除账号");
        // 复选框的操作
        jcb1 = new JCheckBox("隐身登陆");
        jcb2 = new JCheckBox("记住密码");

        // 北部区域
        jl1 = new JLabel(new ImageIcon("images/touxiang.jpg"));
        jp5 = new JPanel();
        jp5.add(jl1);

        // 南部区域
        jp1 = new JPanel();

        jb1 = new JButton("登陆");
        jb2 = new JButton("取消");
        jb3 = new JButton("向导");

        jp1.add(jb1);
        jp1.add(jb2);
        jp1.add(jb3);

        // 中部区域
        jtp = new JTabbedPane();
        jp2 = new JPanel();
        jp3 = new JPanel();
        jp4 = new JPanel();
        jp3.setBackground(Color.red);
        jp4.setBackground(new Color(0, 0, 255));

        // 给面板添加到选项卡窗格上
        jtp.add("QQ号码", jp2);
        jtp.add("手机号码", jp3);
        jtp.add("电子邮件", jp4);

        jp2.setLayout(new GridLayout(3, 3));
        JPanel pnl1 = new JPanel();
        pnl1.setLayout(new FlowLayout(FlowLayout.LEFT,0,15));
        jp2.add(jl2);
        pnl1.add(jtf1);
        jp2.add(pnl1);
        jp2.add(jb4);
        JPanel pnl2 = new JPanel();
        pnl2.setLayout(new FlowLayout(FlowLayout.LEFT,0,13));
        jp2.add(jl3);
        pnl2.add(jpf);
        jp2.add(pnl2);
        jp2.add(jl4);
        
        jp2.add(jcb1);
        jp2.add(jcb2);
        jp2.add(jl5);

        this.add(jp1, BorderLayout.SOUTH);
        this.add(jp5, BorderLayout.NORTH);
        this.add(jtp, BorderLayout.CENTER);

        // 展现组件
        this.setIconImage(new ImageIcon("images/icon.jpg").getImage());
        this.setTitle("腾讯qq");
        this.setResizable(false);
        this.setSize(300, 250);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);

    }

}