Java图形界面——选项卡窗格、面板组件、网格布局

来源:互联网 发布:采购流程优化四手法 编辑:程序博客网 时间:2024/05/21 09:45
  1. package com.test.swing;  
  2.   
  3. import java.awt.*;  
  4. import javax.swing.*;  
  5.   
  6. public class QLogin extends JFrame{  
  7.         //定义组件  
  8.         //北部区域  
  9.     JLabel jl1; //放置图片  
  10.       
  11.         //南部区域  
  12.     JButton jb1, jb2, jb3;//登录、取消、注册向导  
  13.     JPanel jp1;//注意:panel面板,pane是窗格  
  14.       
  15.         //中部区域  
  16.     JTabbedPane jtp;// 选项卡窗格  
  17.     JPanel jp2, jp3, jp4;  
  18.         //QQ选项  
  19.     JLabel jl2, jl3, jl4, jl5;//QQ号码、QQ密码、忘记密码、申请保护  
  20.     JTextField jtf; //文本框  
  21.     JPasswordField jpf;//密码框  
  22.     JButton jb4;//清除号码  
  23.     JCheckBox jcb1, jcb2;//隐身登录、记住密码  
  24.         //手机选项  
  25.     JLabel jl2a, jl3a, jl4a, jl5a;//手机号码 、QQ密码、忘记密码、申请保护  
  26.     JTextField jtfa;    //文本框  
  27.     JPasswordField jpfa;//密码框  
  28.     JButton jb4a;//清除号码  
  29.     JCheckBox jcb1a, jcb2a;//隐身登录、记住密码  
  30.       
  31.     public static void main(String[] args) {  
  32.         QLogin testLogin = new QLogin();  
  33.   
  34.     }  
  35.         //构造函数  
  36.     public QLogin(){  
  37.         //创建组件  
  38.             //北部区域  
  39.         jl1 = new JLabel(new ImageIcon("images/QQ.jpg"));  
  40.             //中部区域  
  41.         jtp = new JTabbedPane();    //选项卡窗格  
  42.         //中部QQ JPanel1  
  43.         jp2 = new JPanel();  
  44.         jl2 = new JLabel("QQ号码:", JLabel.CENTER);  
  45.         jl3 = new JLabel("QQ密码:", JLabel.CENTER);  
  46.         jl4 = new JLabel("忘记密码", JLabel.CENTER);  
  47.         jl4.setFont(new Font("宋体", Font.PLAIN, 13));  
  48.         jl4.setForeground(Color.blue);  
  49.         jl5 = new JLabel("<html><a href='www.qq.com'>申请密码保护</a></html>");  
  50.         jcb1 = new JCheckBox("隐身登录");  
  51.         jcb2 = new JCheckBox("记住密码");  
  52.         jtf = new JTextField(18);  
  53.         jpf = new JPasswordField(18);  
  54.         jb4 = new JButton("清除号码");  
  55.           
  56.         //中部手机JPanel2  
  57.         jp3 = new JPanel();  
  58.         jl2a = new JLabel("手机号码:", JLabel.CENTER);  
  59.         jl3a = new JLabel("QQ密 码:", JLabel.CENTER);  
  60.         jl4a = new JLabel("忘记密码", JLabel.CENTER);  
  61.         jl4a.setFont(new Font("宋体", Font.PLAIN, 13));  
  62.         jl4a.setForeground(Color.blue);  
  63.         jl5a = new JLabel("<html><a href='www.qq.com'>申请密码保护</a></html>");  
  64.         jcb1a = new JCheckBox("隐身登录");  
  65.         jcb2a = new JCheckBox("记住密码");  
  66.         jtfa = new JTextField(18);  
  67.         jpfa = new JPasswordField(18);  
  68.         jb4a = new JButton("清除号码");  
  69.           
  70.             //南部区域  
  71.         jp1 = new JPanel();  
  72.         jb1 = new JButton("登录");  
  73.         jb2 = new JButton("取消");  
  74.         jb3 = new JButton("注册向导");  
  75.           
  76.             //设置布局  
  77.         jp2.setLayout(new GridLayout(33));  
  78.           
  79.           
  80.             //添加组件  
  81.         jp1.add(jb1);   //南部  
  82.         jp1.add(jb2);  
  83.         jp1.add(jb3);  
  84.             //中部  
  85.         jp2.add(jl2);     
  86.         jp2.add(jtf);  
  87.         jp2.add(jb4);  
  88.         jp2.add(jl3);  
  89.         jp2.add(jpf);  
  90.         jp2.add(jl4);  
  91.         jp2.add(jcb1);  
  92.         jp2.add(jcb2);  
  93.         jp2.add(jl5);  
  94.           
  95.         //面板3采用网格布局3行3列  
  96.         jp3.setLayout(new GridLayout(33));  
  97.             /*选项卡2,注意:不能图省事,将与jp2面板中的相同组件再加添到jp3面板中, 
  98.                 否则jp2的中的组件就会显示在jp3中,jp2就会失去相应的组件*/  
  99.         jp3.add(jl2a);    
  100.         jp3.add(jtfa);  
  101.         jp3.add(jb4a);  
  102.           
  103.         jp3.add(jl3a);  
  104.         jp3.add(jpfa);  
  105.         jp3.add(jl4a);  
  106.           
  107.         jp3.add(jcb1a);  
  108.         jp3.add(jcb2a);  
  109.         jp3.add(jl5a);  
  110.           
  111.         //将面板添加到选项卡窗格  
  112.         jtp.add("QQ号码", jp2);  
  113.         jtp.add("手机号码", jp3);  
  114.         jtp.add("电子邮箱", jp4);  
  115.           
  116.         //加入窗体  
  117.         this.add(jl1, BorderLayout.NORTH);  // 图片标签位于北部  
  118.         this.add(jp1, BorderLayout.SOUTH);  //按钮位于南部  
  119.         this.add(jtp, BorderLayout.CENTER); //选项卡窗格位于中部  
  120.           
  121.         this.setSize(400265);  
  122.         this.setResizable(false);   //禁止改变窗体大小  
  123.         this.setTitle("QQ2014");  
  124.         this.setVisible(true);  
  125.         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  126.     }  
  127.   
  128. }  
阅读全文
0 0