1、登录界面与好友列表框的连接
代码:
public LoginFrame() {
frm = new JFrame();
frm.setLayout(null);
//账号
yonghuming = new JLabel("账号");
yonghuming.setBounds(150, 125, 100, 40);
frm.add(yonghuming);
//密码
mima = new JLabel("密码");
mima.setBounds(150, 150, 100, 40);
frm.add(mima);
//用户名
username = new JTextField(10);
username.setBounds(190, 135, 100, 20);
frm.add(username);
//密码框
password = new JPasswordField(10);
password.setBounds(190, 160, 100, 20);
frm.add(password);
//注册账号
register = new JLabel("注册账号");
register.setBounds(300, 123, 100, 40);
frm.add(register);
//为注册账号添加链接
register.addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent e) {
Desktop desk=Desktop.getDesktop();
URI path = null;
try {
path = new URI("http://zc.qq.com/chs/index.html?from=client&pt_clientver=5479&pt_src=1&ptlang=2052®key=C74DB39C0C04892165D4EC8934CC3AF7D4F82CB5CE3E6927F712367058A23491&ADUIN=0&ADSESSION=0&ADTAG=CLIENT.QQ.5479_NewAccount_Btn.0&ADPUBNO=26582");
desk.browse(path);
} catch (URISyntaxException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
register.setForeground(Color.black);
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
register.setForeground(Color.blue);
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
});
/回密码
lookpsw = new JLabel("找回密码");
lookpsw.setBounds(300, 150, 100, 40);
frm.add(lookpsw);
lookpsw.addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent e) {
Desktop desk=Desktop.getDesktop();
URI path = null;
try {
path = new URI("https://aq.qq.com/cn2/findpsw/pc/pc_find_pwd_input_account?source_id=1003&pt_clientver=5467&pt_src=1&ptlang=2052&aquin=534038459
");
desk.browse(path);
} catch (URISyntaxException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
public void mouseExited(MouseEvent e) {
lookpsw.setForeground(Color.black);
}
public void mousePressed(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
lookpsw.setForeground(Color.blue);
}
public void mouseClicked(MouseEvent e) {
}
});
//上部背景
image1 = new ImageIcon("icon\北部背景01.png");
image1.setImage(image1.getImage().getScaledInstance(520, 138, Image.SCALE_DEFAULT));
label1 = new JLabel(image1);
label1.setBounds(-40, -75, 500, 250);
//头像
image = new ImageIcon("icon\头像01.png");
image.setImage(image.getImage().getScaledInstance(80, 80, Image.SCALE_DEFAULT));
label = new JLabel(image);
label.setBounds(-20, 75, 200, 200);
// 下部背景
image2 = new ImageIcon("icon\下.png");
image2.setImage(image2.getImage().getScaledInstance(470, 250, Image.SCALE_DEFAULT));
label2 = new JLabel(image2);
label2.setBounds(0, 70, 470, 250);
//二维码
image3 = new ImageIcon("icon\二维码.png");
image3.setImage(image3.getImage().getScaledInstance(30, 30, Image.SCALE_DEFAULT));
label3 = new JLabel(image3);
label3.setBounds(410, 180, 50, 50);
label3.addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
frm.dispose();
new ERweima();
}
public void mouseExited(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
}
});
//多账号
image4 = new ImageIcon("icon\人.png");
image4.setImage(image4.getImage().getScaledInstance(35, 35, Image.SCALE_DEFAULT));
label4 = new JLabel(image4);
label4.setBounds(0, 180, 50, 50);
label4.addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent arg0) {
}
public void mousePressed(MouseEvent arg0) {
frm.dispose();
new DZHLogin();
}
public void mouseExited(MouseEvent arg0) {
}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseClicked(MouseEvent arg0) {
}
});
label2.add(label3);
label2.add(label4);
frm.add(label);
frm.add(label1);
frm.add(label2);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setResizable(false);
frm.setBounds(700, 200, 460, 330);
frm.setVisible(true);
}
public static void main(String[] args) {
new LoginFrame();
}
程序运行图:
2、界面:QQ聊天框
设计人:米健霞
代码:
import java.net.;
import java.awt.;
import javax.swing.*;
import java.awt.event.;
import java.util.;
import javax.swing.JDialog;
@SuppressWarnings("serial")
public class AboutQQ
extends JFrame
implements ActionListener,Runnable{ //定义qq界面所需的组件
static JPanel p1 = new JPanel(), p2 = new JPanel();
/用来设置滚动条模式, 有四种选择:
ScrollBars.None (无滚动条),
ScrollBars.Horizontal(水平滚动条),
ScrollBars.Vertical(垂直滚动条),
ScrollBars.Both(水平和垂直滚动条)。/
TextArea output = new TextArea("", 20, 18, TextArea.SCROLLBARS_BOTH),
input = new TextArea("", 20, 18, TextArea.SCROLLBARS_VERTICAL_ONLY);
String nicheng1 = "MI"; //定义默认昵称
String nicheng2 = "对方";
JButton b_biaoqing = new JButton("表情");
JButton b_ziti = new JButton("字体");
JButton b_zitiys = new JButton("字体颜色");
JButton b_guanbi = new JButton("关闭(Alt+C)");
JButton b_fasong = new JButton("发送(Alt+S)");
//线程
Thread thread1=new Thread(this);
Color ys = new Color(220, 220, 220);
public AboutQQ() { //布局qq界面
super("与XX聊天中");
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b_fasong.setMnemonic(KeyEvent.VK_S);//发送的快捷键
b_fasong.addActionListener(this);
b_guanbi.setMnemonic(KeyEvent.VK_C);//关闭的快捷键
b_guanbi.addActionListener(this);
b_biaoqing.addActionListener(this);
b_ziti.addActionListener(this);
b_zitiys.addActionListener(this);
Container cc = getContentPane();
setBounds(150, 150, 600, 510);
cc.setLayout(new BorderLayout());
output.setBackground(Color.white);
output.setForeground(Color.blue);
output.setBounds(4, 50, 420, 250);
output.setFont(new Font("楷体", Font.PLAIN, 14));
output.setEditable(false);
ImageIcon image2 = new ImageIcon("imgh.png");
JLabel label2 = new JLabel(image2);
label2.setBounds(5,2,45,45);
p1.add(label2);
ImageIcon image1 = new ImageIcon("imgqq.png");
JLabel label1 = new JLabel(image1);
label1.setBounds(440,30,140,400);
p1.add(label1);
ImageIcon image3 = new ImageIcon("imgah.png");
JLabel label3 = new JLabel(image3);
label3.setBounds(50,1,340,50);
p1.add(label3);
p1.setLayout(null);
p1.setBackground(new Color(220, 220, 220));
p1.add(output);
b_biaoqing.setBounds(4, 303, 60, 25);
p1.add(b_biaoqing);
b_ziti.setBounds(65, 303, 60, 25);
p1.add(b_ziti);
b_zitiys.setBounds(126, 303, 90, 25);
p1.add(b_zitiys);
input.setFont(new Font("楷体", Font.PLAIN, 14));
input.setBackground(Color.white);
input.setForeground(Color.blue);
input.setBounds(4, 330, 420, 125);
p1.add(input);
b_guanbi.setBounds(250, 456, 98, 25);
p1.add(b_guanbi);
b_fasong.setBounds(350, 456, 98, 25);
p1.add(b_fasong);
p1.setBackground(ys);
cc.add(p1, "Center");
p2.setBackground(ys);
p2.setLayout(new GridLayout(10, 1, 1, 10));
cc.add(p2, "East");
setVisible(true);
}
public void AboutQQ1() {
}
public AboutQQ(AboutQQ aboutQQ) {
// TODO Auto-generated constructor stub
}
//执行按钮动作的方法
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b_fasong) {
sendData1();
}
else if(e.getSource() == b_guanbi){
System.exit(0);
}
}
//发送及接受数据的方法
void sendData1(){
try {
Calendar rightNow = Calendar.getInstance(); //获取当前系统日期和时间
int hour = rightNow.get(Calendar.HOUR_OF_DAY); //获取当前时间的整点数
int year = rightNow.get(Calendar.YEAR);
int month = rightNow.get(Calendar.MONTH) + 1;
int day = rightNow.get(Calendar.DATE);
int minute = rightNow.get(Calendar.MINUTE);
int second = rightNow.get(Calendar.SECOND);
String msg = input.getText();
//if (msg.equals("")) {
//return;
//}
input.setText("");
//InetAddress tea = InetAddress.getLocalHost();
//String asd = tea.getHostAddress(); //发送方的IP地址
output.append(nicheng1 + " " + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second + "
" + " " + msg + "
");
msg = nicheng2 + " " + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second + "
" + " " + msg + "
";
byte[] message = msg.getBytes();
DatagramPacket packet = new DatagramPacket(message, message.length,9999);
DatagramSocket socket = new DatagramSocket();
socket.send(packet);
}
catch (Exception e) {
}
}
//等待接受数据的方法
public void run() {
if(Thread.currentThread()==thread1){//线程
try {
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
DatagramSocket socket = new DatagramSocket(9999);
while (true) {
socket.receive(packet);
String s = new String(packet.getData(), 0, packet.getLength());
output.append(s + "
");
packet = new DatagramPacket(buffer, buffer.length);
}
}
catch (Exception e) {
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new AboutQQ();
}
}
程序运行图: