java實現簡單QQ登陸界面:
1.生成界面的java代碼
packageQQ2014;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassQQ2014{
//創建登陸界面類
publicvoidshowLoginFrame(){
//創建船體對象
JFrameloginFrame=newJFrame();
//設置大小,位置,標題
loginFrame.setSize(300,200);
loginFrame.setTitle("QQ2014");
loginFrame.setLocationRelativeTo(null);
//創建流式分布對象
FlowLayoutlayout=newFlowLayout();
loginFrame.setLayout(layout);
//創建賬戶名,密碼和輸入框
JLabeluser_name=newJLabel("賬號:");
JLabeluser_password=newJLabel("密碼:");
JTextFieldfield_name=newJTextField(20);
JPasswordFieldfield_password=newJPasswordField(20);
//創建登陸,重置按鈕
JButtonbutton_reset=newJButton("重置");
JButtonbutton_login=newJButton("登陸");
//設置窗體可見
loginFrame.setVisible(true);
//創建事件監聽對象
ActionListeneraction_listener1=newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringname=field_name.getText();
Stringpassword=field_password.getText();
if("zhaoxin".equals(name)&&"123".equals(password))
{
showIndexFrame();
loginFrame.setDefaultCloseOperation(3);
loginFrame.setVisible(false);
}
else{
System.out.println("密碼錯誤,重新輸入!");
}
}
};
ActionListeneraction_listener2=newActionListener(){
publicvoidactionPerformed(ActionEvente){
field_name.setText("");
field_password.setText("");
}
};
//將文本輸入框,按鈕,事件監聽對象添加
loginFrame.add(user_name);
loginFrame.add(field_name);
loginFrame.add(user_password);
loginFrame.add(field_password);
loginFrame.add(button_reset);
loginFrame.add(button_login);
button_reset.addActionListener(action_listener2);
button_login.addActionListener(action_listener1);
}
publicvoidshowIndexFrame(){
//創建窗體對象
JFrameindexFrame=newJFrame();
indexFrame.setSize(200,500);
indexFrame.setTitle("QQ好友列表");
indexFrame.setLocationRelativeTo(null);
//設置流式分布對象
FlowLayoutlayout=newFlowLayout(FlowLayout.CENTER,100,10);
indexFrame.setLayout(layout);
//創建好友按鈕
for(inti=0;i<10;i++)
{
JButtonbutton_friend=newJButton("friend"+i);
//創建動作事件監聽對象
ActionListeneraction_listener=newActionListener()
{
publicvoidactionPerformed(ActionEvente)
{
showChatFrame();
indexFrame.setVisible(false);
indexFrame.setDefaultCloseOperation(3);
}
};
button_friend.addActionListener(action_listener);
indexFrame.add(button_friend);
}
//設置窗體可見
indexFrame.setVisible(true);
}
publicvoidshowChatFrame(){
//創建窗體,大小,位置,標題
JFramechatFrame=newJFrame();
chatFrame.setSize(400,400);
chatFrame.setTitle("正在聊天中...");
chatFrame.setLocationRelativeTo(null);
//創建聊天記錄,輸入域
JTextAreaarea_input=newJTextArea(10,30);
JTextAreaarea_record=newJTextArea(5,30);
//創建流式分布對象
FlowLayoutlayout=newFlowLayout(FlowLayout.CENTER,0,10);
chatFrame.setLayout(layout);
//創建發送,關閉按扭
JButtonbutton_send=newJButton("發送");
JButtonbutton_close=newJButton("關閉");
//創建動作事件監聽對象
ActionListeneraction_listener1=newActionListener()
{
publicvoidactionPerformed(ActionEvente){
area_record.setText(area_record.getText()+" "+area_input.getText());
area_input.setText("");
}
};
ActionListeneraction_listener2=newActionListener()
{
publicvoidactionPerformed(ActionEvente){
chatFrame.setVisible(false);
chatFrame.setDefaultCloseOperation(3);
}
};
//設置窗體可見
chatFrame.setVisible(true);
//添加按鈕,事件監聽對象
chatFrame.add(area_record);
chatFrame.add(area_input);
chatFrame.add(button_send);
chatFrame.add(button_close);
button_send.addActionListener(action_listener1);
button_close.addActionListener(action_listener2);
}
}
復制代碼
2.javamain方法調用
packageQQ2014;
publicclassTest{
publicstaticvoidmain(String[]args){
QQ2014qq=newQQ2014();
qq.showLoginFrame();
}
}
㈡ 請問用java程序模擬qq登錄界面的代碼怎麼寫啊
太簡單了!你看看! package dyno.swing.beans.qq; import javax.swing.*; import javax.swing.event.MouseInputListener; import org.jvnet.substance.skin.; /*import org.jvnet.substance.skin.SubstanceModerateLookAndFeel; import org.jvnet.substance.skin.;*/ import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.io.IOException; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; public class QQLogin extends JFrame implements MouseInputListener,ActionListener{ JLabel guanggao,beijing,wenzi,she,zhanghaowb,qq1,dengluzhuangtai; // JTextField zhanghao; JPopupMenu haoma; JComboBox zhanghao; JPasswordField mima; JCheckBox jizhumima,zidongdenglu; JButton denglu,chashamuma; JProgressBar jpb; SimThread activity; Timer activityMonitor; String name,qq; Socket s; public QQLogin() { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (ClassNotFoundException e1) { // TODO 自動生成 catch 塊 e1.printStackTrace(); } catch (InstantiationException e1) { // TODO 自動生成 catch 塊 e1.printStackTrace(); } catch (IllegalAccessException e1) { // TODO 自動生成 catch 塊 e1.printStackTrace(); } catch ( e1) { // TODO 自動生成 catch 塊 e1.printStackTrace(); } chashamuma = new JButton("查殺木馬"); chashamuma.setBounds(240, 155,85, 20); this.add(chashamuma); jpb = new JProgressBar(); jpb.setStringPainted(true); jpb.setBounds(100, 240, 200, 15); this.add(jpb); chashamuma.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ jpb.setMaximum(1000);//設置進度欄的最大值 activity=new SimThread(1000); activity.start();//啟動線程 activityMonitor.start();//啟動定時器 chashamuma.setEnabled(false);//禁止按鈕 } }); activityMonitor=new Timer(100,new ActionListener(){//每0.5秒執行一次 public void actionPerformed(ActionEvent e){//以下動作將在事件調度線程中運行,十分安全 int current=activity.getCurrent();//得到線程的當前進度 jpb.setValue(current);//更新進度欄的值 if(current==activity.getTarget()){//如果到達目標值 activityMonitor.stop();//終止定時器 chashamuma.setEnabled(true);//激活按鈕 } } }); dengluzhuangtai = new JLabel(new ImageIcon("zaixianzhuangtai.jpg")); dengluzhuangtai.setBounds(75, 145, 35, 30); this.add(dengluzhuangtai); dengluzhuangtai.addMouseListener(this); denglu = new JButton("登錄"); denglu.setBounds(140, 155, 80, 20); this.add(denglu); this.setAlwaysOnTop(true); zidongdenglu = new JCheckBox("自動登錄"); zidongdenglu.setBounds(200, 190, 100, 30); this.add(zidongdenglu); jizhumima = new JCheckBox("記住密碼"); jizhumima.setBounds(100, 190, 100, 30); // jizhumima.setBackground(new Color(228, 244, 255)); this.add(jizhumima); haoma = new JPopupMenu(); /* zhanghao = new JTextField(20); zhanghao.setBounds(120, 78, 135, 20); zhanghao.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.WHITE)); zhanghao.setFont(new Font("宋體",Font.PLAIN,13)); this.add(zhanghao);*/ // zhanghaowb = new JLabel(new ImageIcon("2.png")); // zhanghaowb.setBounds(90, 73, 194, 31); // jiantou = new JLabel(new ImageIcon("jiantou.png")); // jiantou.setBounds(256, 78, 23, 21); // jiantou.addMouseListener(this); // this.add(jiantou); // this.add(zhanghaowb); chashamuma.addActionListener(this); mima = new JPasswordField(); mima.setEchoChar('*'); mima.setFont(new Font("宋體",Font.PLAIN,13)); mima.setBounds(100, 113, 150, 20); this.add(mima); zhanghao = new JComboBox(); zhanghao.setEditable(true); zhanghao.setBounds(100, 78, 150, 20); zhanghao.setFont(new Font("宋體",Font.PLAIN,13)); this.add(zhanghao); guanggao = new JLabel(new ImageIcon("guanggao.gif")); guanggao.setBounds(0, 0, 334, 64); beijing = new JLabel(new ImageIcon("beijing.jpg")); beijing.setBounds(0, 64, 334, 154); wenzi = new JLabel(new ImageIcon("wenzi.jpg")); wenzi.setBounds(30, 75, 50, 100); denglu.addActionListener(this); // zhanghaowb.addMouseListener(this); // zhanghao.addMouseListener(this); this.add(wenzi); this.add(beijing); this.setLayout(null); this.add(guanggao); this.setVisible(true); this.setDefaultCloseOperation(3); this.setSize(340, 250); this.setLocationRelativeTo(null); } public static void main(String[] args) { /*JFrame.(true); try { UIManager.setLookAndFeel(new ()) ; UIManager.setLookAndFeel("org.jvnet.substance.skin."); } catch (Exception e) { System.out.println("Substance Raven Graphite failed to initialize"); } SwingUtilities.invokeLater(new Runnable() { public void run() { QQLogin w = new QQLogin(); w.setVisible(true); } });*/ new QQLogin(); } public void mouseClicked(MouseEvent e) { // TODO 自動生成方法存根 } public void mouseEntered(MouseEvent e) { if(e.getSource() == dengluzhuangtai) { dengluzhuangtai.setIcon(new ImageIcon("zaixianzhuangtaidian.jpg")); } } public void mouseExited(MouseEvent e) { if(e.getSource() == dengluzhuangtai) { dengluzhuangtai.setIcon(new ImageIcon("zaixianzhuangtai.jpg")); } } public void mousePressed(MouseEvent e) { // TODO 自動生成方法存根 } public void mouseReleased(MouseEvent e) { // TODO 自動生成方法存根 } public void mouseDragged(MouseEvent e) { // TODO 自動生成方法存根 } public void mouseMoved(MouseEvent e) { // TODO 自動生成方法存根 } public class liaotianchuangkou { } class SimThread extends Thread{//線程類 private int current;//進度欄的當前值 private int target;//進度欄的最大值 public SimThread(int t){ current=0; target=t; } public int getTarget(){ return target; } public int getCurrent(){ return current; } public void run(){//線程體 try{ while (current<target && !interrupted()){//如果進度欄的當前值小於目標值並且線程沒有被中斷 sleep(10); current++; if(current == 700) { sleep(3000); } else if(current == 730) { sleep(1000); } } }catch (InterruptedException e){} } } public void actionPerformed(ActionEvent e) { if(e.getSource() == chashamuma) { this.setBounds(300, 300, 340, 300); } else if(e.getSource() == denglu) { String zh = (String) zhanghao.getSelectedItem(); System.out.println(zhanghao.getSelectedItem()); // System.out.println(zhanghao.getItemAt(0)); char [] str = mima.getPassword(); String mima = String.valueOf(str);; System.out.println(mima); // Sql login = new Sql(); // if(login.login(zh,mima)) // { try { s = new Socket("127.0.0.1",8888); System.out.println(s); PrintWriter pw; Scanner sc; pw = new PrintWriter(s.getOutputStream(),true); sc = new Scanner(s.getInputStream()); String str2 = "login#289872400198724#"+zh+"#289872400198724#"+mima; System.out.println(str2); pw.println(str2); String str3 = sc.nextLine(); String yanzheng[] = str3.split("#"); System.out.println(str3); if(yanzheng[0].equals("true")) { System.out.println("登陸成功!"); name = yanzheng[1]; qq = yanzheng[2]; // this.setVisible(false); // Thread.sleep(5000); System.out.println("woao"+name); System.out.println("woai"+qq); Logined logined = new Logined(name,qq); this.setVisible(false); } else { JOptionPane.showMessageDialog(this, "用戶名或密碼錯誤!", "用戶名或密碼錯誤!", 0); } } catch (UnknownHostException e2) { // TODO 自動生成 catch 塊 e2.printStackTrace(); } catch (IOException e2) { // TODO 自動生成 catch 塊 e2.printStackTrace(); } /*try { login.rs = login.stat.executeQuery("select * from qquser where username='"+zh+"' and password = '"+mima+"'"); boolean flag = login.rs.next(); if(flag == true) { name = login.rs.getString("name"); qq = login.rs.getString("username"); } else { }*/ // } catch (SQLException e1) { // TODO 自動生成 catch 塊 // e1.printStackTrace(); // } } else { JOptionPane.showMessageDialog(this, "用戶名或密碼錯誤", "輸入錯誤", 0); } // this.setVisible(false); //new Logined(); } }
㈢ java 做QQ
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
import java.io.*;
import javax.swing.*;
import java.awt.Button;
import java.awt.Panel;
import java.lang.String;
import javax.swing.JOptionPane;
public class QQ extends Frame implements ActionListener{
Label Lname ,Lpassword; //定義用戶名和密碼的標簽
TextField Tname; //定義用戶名的文本框
JPasswordField Tpassword; //定義密碼的文本框。註:使用JPasswordField的好處就是輸入的密碼是以****顯示給用戶的
Panel panel1=new Panel(); //定義面板
Button Load,login; //定義登陸和注冊的按鈕
boolean b=false;
File file1; //定義記錄用戶注冊的用戶名和密碼的文件夾
Writer writer;
String []Usersname=new String[1024]; //定義記錄用戶名的數組
String []Userspassword=new String[1024];//定義記錄密碼的數組
public QQ(){
Lname=new Label ("用戶名");Lname.setBackground(Color.red);//設置標簽的背景顏色
Lpassword=new Label ("密碼");Lpassword.setBackground(Color.red);//設置標簽的背景顏色
Tname=new TextField (10);
Tpassword=new JPasswordField (10);
Load=new Button("登陸");Load.setBackground(Color.lightGray);
login=new Button("注冊");login.setBackground(Color.lightGray);
add(panel1,BorderLayout.CENTER);
setLayout(new CardLayout(3,2));
panel1.add(Lname);
panel1.add(Tname);
panel1.add(Lpassword);
panel1.add(Tpassword);
panel1.add(Load);Load.addActionListener(this);
panel1.add(login);login.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
// 用戶登錄事件處理
if (e.getSource() == Load) {
String name1 = Tname.getText();
String password1 = Tpassword.getText();
boolean flag = false;
int index = 0;
for (int i = 0; i < Usersname.length; i++) {
if (name1.equals(Usersname[i])) {
flag = true;
index = i;
break;
}
}
if (flag && password1.equals(Userspassword[index])) {
//處理用戶登錄成功後的反饋信息
JOptionPane.showMessageDialog(null, "恭喜您登陸成功!", "消息", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "對不起您的用戶名或密碼錯誤!", "錯誤",JOptionPane.ERROR_MESSAGE);
}
}
// 用戶注冊模塊的事件處理
if (e.getSource() == login) {
String NCmp = Tname.getText();
String PCmp = Tpassword.getText();
boolean flag = false;
for (int i = 0; i < Usersname.length; i++) {
if (NCmp.equals(Usersname[i])) {
flag = true;
break;
}
}
if (flag) {
JOptionPane.showMessageDialog(null, "對不起您的用戶名已經注冊!", "錯誤", JOptionPane.ERROR_MESSAGE);
} else {
int index = 0;
JOptionPane.showMessageDialog(null, "注冊成功!", "消息", JOptionPane.INFORMATION_MESSAGE);
for (int i = 0; i < Usersname.length; i++) {
if (Usersname[i] == null) {
Usersname[i] = NCmp;
index = i;
break;
}
}
Userspassword[index] = PCmp;
}
try{
file1=new File("Student.dat");
FileWriter fw=new FileWriter(file1,true);
fw.write("用戶名"+"\t\t"+"密碼"+"\n");
fw.write(NCmp+"\t\t"+PCmp+"\n");
fw.close();
}catch (IOException e1){
e1.printStackTrace();
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Frame Fstudent=new QQ();
Fstudent.setSize(200,200);
Fstudent.setTitle("QQ模擬系統");
// 關閉窗口
Fstudent.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
Fstudent.setVisible(true);
}
}
自己寫的 呵呵不好意思 主要功能就是登陸 和注冊
注冊有用戶名同名時會提示(報錯)
你運行下 就可以了
不好還可以聯系呵呵
這個東西 還是自己去摸索吧 網上的資料很多 要知道 你如果真的做軟體開發的話 你就要去自學很多東西 而不是 去弄現成的 學會好好 網路吧 而不是提問
㈣ java QQ登陸界面代碼
package com.demo4;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
public class Demo1 extends JFrame{
public Demo1(){
init();
}
private void init(){
ImageIcon icon=new ImageIcon("Image/8.jpg");
setIconImage(icon.getImage());
setTitle("QQ2011");
setSize(310,270);
setContentPane(createContentPane());
}
private JPanel createContentPane(){
JPanel pane=new JPanel(new BorderLayout());
pane.add(BorderLayout.NORTH,new JLabel(new ImageIcon("Image/5.jpg")));
pane.add(BorderLayout.CENTER,createPane());
pane.add(BorderLayout.SOUTH,createButtonPane());
return pane;
}
private JPanel createPane(){
JPanel pane=new JPanel(new BorderLayout());
pane.setBorder(new EmptyBorder(12,24,12,24));
pane.add(BorderLayout.NORTH,createGridPane());
pane.add(BorderLayout.CENTER,createCheckBoxPane());
return pane;
}
private JPanel createGridPane(){
JPanel pane=new JPanel(new GridLayout(2,1,0,8));
pane.add(createName());
pane.add(createPassword());
return pane;
}
private JPanel createName(){
JPanel pane=new JPanel(new BorderLayout());
pane.add(BorderLayout.WEST,new JLabel("賬號"));
pane.add(BorderLayout.CENTER,new JTextField(10));
pane.add(BorderLayout.EAST,new JButton("清除賬號"));
return pane;
}
private JPanel createPassword(){
JPanel pane=new JPanel(new BorderLayout());
pane.add(BorderLayout.WEST,new JLabel("密碼"));
pane.add(BorderLayout.CENTER,new JPasswordField(10));
pane.add(BorderLayout.EAST,new JButton("忘記密碼"));
return pane;
}
private JPanel createCheckBoxPane(){
JPanel pane=new JPanel(new FlowLayout());
JCheckBox jcb1=new JCheckBox("隱身登陸");
JCheckBox jcb2=new JCheckBox("記住密碼");
pane.add(jcb1);
pane.add(jcb2);
return pane;
}
private JPanel createButtonPane(){
JPanel pane=new JPanel(new FlowLayout());
JButton denglu=new JButton("登陸");
JButton quxiao=new JButton("取消");
JComboBox jcbb=new JComboBox();
String[]jc={"上線","隱身","離線","忙碌"};
jcbb=new JComboBox(jc);
pane.add(denglu);
pane.add(quxiao);
pane.add(jcbb);
return pane;
}
public void ActionListener(){
for(int i=0;i<=i;i++)
System.out.println(i);
}
public void xianshi(){
setVisible(true);
}
}
下面是主函數的代碼 估計包可能還有問題 還有圖片的問題
package com.demo4;
public class Main1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo1 a=new Demo1();
a.xianshi();
}
}