QQ仿真登錄 2. [代碼]Swing寫(xiě)的QQ登錄界面 跳至 [2] [全屏預(yù)覽] view sourceprint? 001 import java.awt.Container; 002 import java.awt.Image; 003 import java.awt.event.ActionEvent; 004 import java.awt.event.ActionListener; 005 006 import javax.swing.ImageIcon; 007 import javax.swing.JButton; 008 import javax.swing.JCheckBox; 009 import javax.swing.JComboBox; 010 import javax.swing.JFrame; 011 import javax.swing.JLabel; 012 import javax.swing.JOptionPane; 013 import javax.swing.JPasswordField; 014 import javax.swing.JTextField; 015 016 /** 017 * 仿QQ登錄界面 018 * 019 * @author jiang 020 */ 021 public class GUIQQ extends JFrame { 022 // 用戶(hù)名 023 private JTextField username; 024 // 密碼 025 private JPasswordField password; 026 // 小容器 027 private JLabel jl1; 028 private JLabel jl2; 029 private JLabel jl3; 030 private JLabel jl4; 031 032 // 小按鈕 033 private JButton bu1; 034 private JButton bu2; 035 private JButton bu3; 036 037 // 復(fù)選框 038 private JCheckBox jc1; 039 private JCheckBox jc2; 040 041 // 列表框 042 private JComboBox jcb; 043 044 /* 045 * 構(gòu)造方法 046 */ 047 public GUIQQ() { 048 // 設(shè)置窗口標(biāo)題 049 this.setTitle("QQ2012正式版"); 050 // 窗體組件初始化 051 init(); 052 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 053 // 設(shè)置布局方式為絕對(duì)定位 054 this.setLayout(null); 055 056 this.setBounds(0, 0, 355, 265); 057 // 設(shè)置窗體的標(biāo)題圖標(biāo) 058 Image image = new ImageIcon("e:/a.gif").getImage(); 059 this.setIconImage(image); 060 061 // 窗體大小不能改變 062 this.setResizable(false); 063 064 // 居中顯示 065 this.setLocationRelativeTo(null); 066 067 // 窗體可見(jiàn) 068 this.setVisible(true); 069 } 070 071 /* 072 * 初始化方法 073 */ 074 public void init() { 075 // 創(chuàng)建一個(gè)容器 076 Container con = this.getContentPane(); 077 jl1 = new JLabel(); 078 // 設(shè)置背景圖片 079 Image image1 = new ImageIcon("e:/background.jpg").getImage(); 080 jl1.setIcon(new ImageIcon(image1)); 081 jl1.setBounds(0, 0, 355, 265); 082 083 // QQ登錄頭像設(shè)定 084 jl2 = new JLabel(); 085 Image image2 = new ImageIcon("e:/a.gif").getImage(); 086 jl2.setIcon(new ImageIcon(image2)); 087 jl2.setBounds(40, 95, 50, 60); 088 089 // 用戶(hù)號(hào)碼登錄輸入框 090 username = new JTextField(); 091 username.setBounds(100, 100, 150, 20); 092 // 用戶(hù)號(hào)碼登錄輸入框旁邊的文字 093 jl3 = new JLabel("注冊(cè)賬號(hào)"); 094 jl3.setBounds(260, 100, 70, 20); 095 096 // 密碼輸入框 097 password = new JPasswordField(); 098 password.setBounds(100, 130, 150, 20); 099 // 密碼輸入框旁邊的文字 100 jl4 = new JLabel("找回密碼"); 101 jl4.setBounds(260, 130, 70, 20); 102 103 // 輸入框下方文字 104 jc1 = new JCheckBox("記住密碼"); 105 jc1.setBounds(105, 155, 80, 15); 106 jc2 = new JCheckBox("自動(dòng)登錄"); 107 jc2.setBounds(185, 155, 80, 15); 108 109 // 用戶(hù)登錄狀態(tài)選擇 110 jcb = new JComboBox(); 111 jcb.addItem("在線"); 112 jcb.addItem("隱身"); 113 jcb.addItem("離開(kāi)"); 114 jcb.setBounds(40, 150, 55, 20); 115 116 // 按鈕設(shè)定 117 bu1 = new JButton("登錄"); 118 bu1.setBounds(280, 200, 65, 20); 119 // 給按鈕添加1個(gè)事件 120 bu1.addActionListener(new ActionListener() { 121 122 @Override 123 public void actionPerformed(ActionEvent e) { 124 String str=e.getActionCommand(); 125 if("登錄".equals(str)){ 126 String getName =username.getText(); 127 // String getPwd =password.getText(); 128 JOptionPane.showConfirmDialog(null, "您輸入的用戶(hù)名是"+getName); 129 } 130 131 } 132 }); 133 134 135 bu2 = new JButton("多賬號(hào)"); 136 bu2.setBounds(5, 200, 75, 20); 137 bu3 = new JButton("設(shè)置"); 138 bu3.setBounds(100, 200, 65, 20); 139 140 // 所有組件用容器裝載 141 jl1.add(jl2); 142 jl1.add(jl3); 143 jl1.add(jl4); 144 jl1.add(jc1); 145 jl1.add(jc2); 146 jl1.add(jcb); 147 jl1.add(bu1); 148 jl1.add(bu2); 149 jl1.add(bu3); 150 con.add(jl1); 151 con.add(username); 152 con.add(password); 153 154 } 155 156 public static void main(String[] args) { 157 // 實(shí)例化對(duì)象 158 GUIQQ qq = new GUIQQ(); 159 } 160 161 } |
|