最代码广告位
首页>分享>java swing仿qq写的群聊软件>/javaqq/src/Clientframe.java
import java.awt.BorderLayout;
import java.awt.Checkbox;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.TextArea;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.DefaultListModel;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;

/**
 * 
 * @author tian
 *	
 */
public class Clientframe {
	
	//	登陆窗口
	JFrame jf;
	JPanel jp1;			
	JPanel jp2;
	JLabel jl1;			
	JLabel jl2;			
	JLabel jl3;
	JLabel jl4;
	JLabel jl5;
	JLabel jl6;
	JLabel jl7;
	Checkbox cb;
	Checkbox cb2;
	Choice ci ;
	ImageIcon im;
	JLabel jl8;
	JTextField jtfname;	
	JPasswordField jtfpwd;	
	JTextField jtfname2;
	JTextField jtfname3;
	JButton jb1;		
	JButton jb2;
	
//	  群聊窗口
	JFrame jfa;
	JPanel jpa;
	JPanel jp;
	JPanel jpl;
	TextArea jtaa;
	TextArea jtab;
	JButton jba;
	JButton jbb;
	JButton jbc;
	JTextPane textPane;
	JTextPane textPane1;	
	ImageIcon iic;
	
//	  私聊窗口
	JFrame jfaa;			
	JPanel jpaa;			
	JPanel jpp;
	JPanel jpll;
	JTextPane jtaaa;	
	JTextPane jtabb;	
	JButton jbaa;		
	JButton jbbb;		
	JButton jbbc;
	ImageIcon iic2;
	
//	  上线用户列表
	JFrame jfb;
	JPanel jpan;
	JPanel jpan1;
	DefaultListModel dlm;
	JList jli;
	JButton jb;
	ImageIcon ii;
	ImageIcon iii;
	JLabel jl;
	
//	群聊表情窗口
	JFrame jfc;
	JPanel jpbq;
	
	/**
	 * 
	 */
	public Clientframe(){
		
//		初始化群聊表情窗口
		jfc = new JFrame("表情");
		jpbq = new JPanel();
		jfc.add(jpbq, BorderLayout.CENTER);
		jpbq.setLayout(new GridLayout(5,5));
		jfc.add(jpbq);
		URL qqurl = this.getClass().getClassLoader().getResource("Image/qq.jpg"); 
		jfc.setIconImage(Toolkit.getDefaultToolkit().createImage(qqurl));
		ArrayList al = new ArrayList();
		for (int i = 10; i < 35; i++) {
			URL url = this.getClass().getClassLoader().getResource( "Image/"+i+".gif"); 
			ImageIcon ii=new ImageIcon(url);
			JLabel jl = new JLabel(ii);
			al.add(jl);
		}
		for (int j = 0; j < al.size(); j++) {
			JLabel jl = (JLabel) al.get(j);
			jl.addMouseListener(new MouseListener(){
				public void mouseClicked(MouseEvent e) {
					StyledDocument doc = textPane1.getStyledDocument();
					SimpleAttributeSet attr = new SimpleAttributeSet();
					StyleConstants.setForeground(attr, Color.red);
					String s = e.getSource().toString();
					Pattern p = Pattern.compile(".gif");
					Matcher m = p.matcher(s);
					while(m.find()){
							int start = m.start();
							int end = m.end();
							String subs = s.substring(start-2,end);
							String path = "d:\\"+subs;
							textPane1.setCaretPosition(doc.getLength()); // 设置插入位置
							File file = new File(path);
							Icon image = new ImageIcon(file.getAbsoluteFile().toString());
							textPane1.insertIcon(image);
							try {
								doc.insertString(doc.getLength(), file.getName(), attr);
							} catch (BadLocationException e1) {
								
								e1.printStackTrace();
							}
						}
				}

				public void mouseEntered(MouseEvent e) {
					
				}
			
				public void mouseExited(MouseEvent e) {
					
				}

				public void mousePressed(MouseEvent e) {
					
				}

				public void mouseReleased(MouseEvent e) {
					
				}
			});
			jpbq.add(jl);
		}
		
		jfc.setVisible(false);
		jfc.setSize(250,250);

		
//		初始化登陆窗口
		
		jf = new JFrame("QQ用户登陆");
		jp1 = new JPanel();
		jp2 = new JPanel();
		jtfname = new JTextField("",15);
		jtfpwd = new JPasswordField("",15);
		jtfname2 = new JTextField("",15);
		jl1 = new JLabel("QQ账号:");
		jl2 = new JLabel("QQ密码:");
		jl3 = new JLabel("ServerIP:");
		jl4 = new JLabel("申请账号");
	    jl5 = new JLabel("忘了密码");
		jl6 = new JLabel("QQ状态:");
		jl7=new JLabel("动感地带 ");
		cb = new Checkbox("自动登录");
	    cb2 = new Checkbox("记住密码");
		ci = new Choice();
		jb1 = new JButton("登录");
        jb2 = new JButton("退出");
        URL jmurl =this.getClass().getClassLoader().getResource("Image/jm.jpg");
        im = new ImageIcon(jmurl);
        jl8=new JLabel(im);
		jf.add(jp1,BorderLayout.CENTER);
		jf.add(jp2,BorderLayout.SOUTH);
		jp1.add(jl8);
		jp1.add(jl1);
		jp1.add(jtfname);
		jp1.add(jl4);
		jp1.add(jl2);
		jp1.add(jtfpwd);
		jp1.add(jl5);
		jp1.add(jl3);
		jp1.add(jtfname2);
		jp1.add(jl7);
		jp1.add(jl6);
		jp1.add(ci);
		jp1.add(cb2);
		jp1.add(cb);
		jp2.add(jb1);
		jp2.add(jb2);
		jf.setBackground(new Color(100, 253, 98));
		jp1.setBackground(new Color(176, 224, 230 ));
		jp2.setBackground(new Color(127, 255, 212 ));
		ci.add("在线");
		ci.add("Q我吧");
		ci.add("忙碌");
		ci.add("离开");
		ci.add("静音");
		ci.add("隐身");
		jl1.setForeground(Color.BLUE);
		jl2.setForeground(Color.BLUE);
		jl3.setForeground(Color.BLUE);
		jl4.setForeground(Color.BLUE);
		jl5.setForeground(Color.BLUE);
		jl7.setForeground(Color.BLUE);
		jb1.setSize(20, 10);
		jb2.setSize(20, 10);
        jf.setSize(333, 250);
		jf.setIconImage(Toolkit.getDefaultToolkit().createImage(qqurl));
		jf.setLocation(500, 250);
		jf.setResizable(false);
		jf.setVisible(true);
		
		jb2.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				System.exit(1);
				
			}
			
		});
		
//		初始化群聊窗口
		jfa = new JFrame("QQ聊天室");
		jpa = new JPanel();
		jp = new JPanel();
		jpl = new JPanel();
		dlm = new DefaultListModel();
		URL iicurl =this.getClass().getClassLoader().getResource("Image/12.gif");
		iic=new ImageIcon(iicurl);
		textPane = new JTextPane();
		textPane1 = new JTextPane();
		textPane.setPreferredSize(new Dimension(360, 200));
		textPane1.setPreferredSize(new Dimension(360, 100));
		textPane.setFont(new Font("Serif",Font.BOLD,14));
		textPane1.setFont(new Font("Serif",Font.BOLD,14));
		JScrollPane scrollPane = new JScrollPane(textPane);
		JScrollPane scrollPane1 = new JScrollPane(textPane1);
		textPane1.setForeground(Color.red);
		jba = new JButton("发送");
		jbb = new JButton("清空");
		jbc = new JButton("表情",iic);
		jbc.setMnemonic(KeyEvent.VK_F);//给“表情”按钮设置快捷键
		jba.setForeground(Color.BLUE);
		jbb.setForeground(Color.BLUE);
		jbc.setForeground(Color.BLUE);
		jfa.add(jpa, BorderLayout.NORTH);
		jfa.add(jp, BorderLayout.CENTER);
		jfa.add(jpl, BorderLayout.SOUTH);
		jfa.setIconImage(Toolkit.getDefaultToolkit().createImage(qqurl));
		jpa.add(scrollPane);
		jp.add(scrollPane1);
		jpl.add(jba);
		jpl.add(jbc);
		jpl.add(jbb);
		jpa.setBackground(new Color(100, 253, 98));
		jp.setBackground(new Color(100, 253, 98));
		jpl.setBackground(new Color(100, 253, 98));
		jfa.setSize(380, 400);
		jfa.setLocation(500, 150);
		jfa.setResizable(false);
		jfa.setVisible(false);

		jbb.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textPane1.setText("");
			}
		});
		
		
//		 监听群聊表情按钮
		jbc.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				jfc.setVisible(true);
				jfc.setLocation(500, 150);
			}
		});
		
//		初始化私聊窗口
		jfaa = new JFrame("私聊");			
		jpaa = new JPanel();			
		jpp = new JPanel();
		jpll =new JPanel();
		URL transcurl =this.getClass().getClassLoader().getResource("Image/trans.gif");
		iic2 =new ImageIcon(transcurl);
		jtaaa = new JTextPane();	
		jtabb = new JTextPane();
		jtaaa.setPreferredSize(new Dimension(360, 200));
		jtabb.setPreferredSize(new Dimension(360, 100));
		JScrollPane scrollPanea = new JScrollPane(jtaaa);
		JScrollPane scrollPaneb = new JScrollPane(jtabb);
		jtabb.setForeground(Color.red);
		jbaa = new JButton("发送");		
		jbbb = new JButton("清空");		
		jbbc = new JButton("",iic2);
		jbc.setMnemonic(KeyEvent.VK_F);
		jtaaa.setFont(new Font("Serif",Font.BOLD,14));
		jtabb.setFont(new Font("Serif",Font.BOLD,14));
	    jbaa.setForeground(Color.BLACK);
		jbbb.setForeground(Color.BLACK);
		jbbc.setForeground(Color.BLACK);
		jfaa.add(jpaa,BorderLayout.NORTH);
		jfaa.add(jpp,BorderLayout.CENTER);
		jfaa.add(jpll,BorderLayout.SOUTH);
		jfaa.setIconImage(Toolkit.getDefaultToolkit().createImage(qqurl));
		jpaa.add(scrollPanea);
		jpp.add(scrollPaneb);
		jpll.add(jbaa);
		jpll.add(jbbc);
		jpll.add(jbbb);
		jf.setBackground(new Color(100, 253, 98));
		jpaa.setBackground(new Color(100, 253, 98));		
		jpp.setBackground(new Color(100, 253, 98));		 
		jpll.setBackground(new Color(100, 253, 98));		 
		jfaa.setSize(380, 400);
		jfaa.setLocation(500, 150);
		jfaa.setResizable(false);
		jfaa.setVisible(false);	
		 	   
		jbbb.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				jtabb.setText("");
			}
			
		});
		
//		初始化上线用户列表
		jfb = new JFrame();
		jpan = new JPanel();
		dlm = new DefaultListModel();
		jli = new JList(dlm);
		jb = new JButton(">>>群聊模式");
		jli.setForeground(Color.BLUE);
		jb.setSize(15, 20);
		jb.setForeground(Color.BLUE);
		jfb.add(jpan);
		jpan.setLayout(new BorderLayout());
		jpan.add(jli, BorderLayout.CENTER);
		jpan.add(jb, BorderLayout.SOUTH);
		jpan.add(jli);
		jfb.setIconImage(Toolkit.getDefaultToolkit().createImage(qqurl));
		jfb.setResizable(false);
		jfb.setLocation(500, 200);
		jfb.setSize(200, 450);
		jfb.setVisible(false);
		
	}
}

最近下载更多
nothingjjjjjj LV36月28日
星星星星星星
xiangying LV16月27日
星星
2290319128 LV16月20日
星星
13339763244 LV36月20日
星星星星星星
1172364734 LV16月18日
星星
Hello_every_one LV46月16日
月亮
moonquake_lin LV26月16日
星星星星
月下独饮 LV25月31日
星星星星
1697195393 LV35月23日
星星星星星星
cyx960817 LV25月19日
星星星星
最近浏览更多
3159792465 LV36月30日
星星星星星星
anonymous666 LV16月30日
星星
helen光儿6月30日
暂无贡献等级
Jayjjjjj LV16月28日
星星
nothingjjjjjj LV36月28日
星星星星星星
hwj123456 LV46月27日
月亮
xiangying LV16月27日
星星
ssw1107 LV16月27日
星星
setsunayu LV16月26日
星星
A12G346月26日
暂无贡献等级
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友