/**
* 仿制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); }}