布局——仿QQ页面
源代码:
import java.awt.*;
import javax.swing.*;
public class L512 extends JFrame
{
//JLabel bq1; //北部
JButton an1,an2,an3; //JPanel mb1;//南部
JTabbedPane xxk; //中部
JPanel mb1,mb2,mb3,mb4;
JLabel bq1,bq2,bq3,bq4,bq5;/*qq密码,qq号码,申请密码保护,忘记密码标签*/ JTextField wbk; JPasswordField mmk;
JButton an4;
JCheckBox fxk1,fxk2;
public static void main(String[] args)
{ L512 lx=new L512(); }
public L512()
{
bq2=new JLabel("qq号码",JLabel.CENTER);
bq3=new JLabel("qq密码",JLabel.CENTER);
bq4=new JLabel("忘记密码",JLabel.CENTER);
bq4.setFont(new Font("宋体",Font.PLAIN,16));
bq4.setForeground(Color.BLUE);
bq5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
wbk=new JTextField();
mmk=new JPasswordField();
an4=new JButton(new ImageIcon("image/an4.jpg"));
fxk1=new JCheckBox("隐身登陆");
fxk2=new JCheckBox("记住密码");
bq1=new JLabel(new ImageIcon("image/qqq.jpg")); //北部
mb1=new JPanel(); //南部
an1=new JButton(new ImageIcon("image/an1.jpg"));
an2=new JButton(new ImageIcon("image/an2.jpg"));
an3=new JButton(new ImageIcon("image/an3.jpg"));
xxk=new JTabbedPane(); //中部
mb2=new JPanel(); mb3=new JPanel();
mb3.setBackground(Color.BLUE);
mb4=new JPanel();
mb4.setBackground(Color.GREEN);
xxk.add("普通用户",mb2); xxk.add("QQ会员",mb3); xxk.add("管理员",mb4);
mb2.setLayout(new GridLayout(3,3));
mb1.add(an1); mb1.add(an2); mb1.add(an3);
mb2.add(bq2); mb2.add(wbk); mb2.add(an4); mb2.add(bq3); mb2.add(mmk);//mb2默认采用流式布局,需要an顺序添加
mb2.add(bq4); mb2.add(fxk1); mb2.add(fxk2); mb2.add(bq5);
this.add(mb1,BorderLayout.SOUTH);
this.add(bq1,BorderLayout.NORTH);
this.add(xxk,BorderLayout.CENTER);//包括了mb2,mb3和mb4,当显示普通用户时显示mb2,显示会员时显示mb3,mb3和mb4本例中仅简化为图形
ImageIcon tp1=new ImageIcon("image/qq.jpg");//用户登录处的小图标
this.setIconImage(tp1.getImage());
this.setTitle("用户登录");
this.setSize(340,270);
this.setLocation(300,280);
this.setResizable(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}