`
tuyuan
  • 浏览: 30439 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java Swing 版 QQ

阅读更多

Java Swing 版 QQ

 



 

 

public class LoginFrame extends MyJCFrame {
	private static final long serialVersionUID = 1L;
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					LoginFrame frame = new LoginFrame();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public LoginFrame() {
		initComponents();
		initAction();
	}
	
	private void initComponents(){

		setTitle("JQ2011");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 338, 260);
		
		conterWindows(WindowsLocation.CENTER);
		setDefaultBackgroundImage(true);
		setResizable(false);
		setAlwaysOnTop(true);
		
		contentPane.setBackground(new Color(255,255,255,0));
		setContentPane(contentPane);
		
		GridBagLayout gbl_contentPane = new GridBagLayout();
		gbl_contentPane.columnWidths = new int[]{0, 0};
		gbl_contentPane.rowHeights = new int[]{92, 0, 32, 0};
		gbl_contentPane.columnWeights = new double[]{1.0, Double.MIN_VALUE};
		gbl_contentPane.rowWeights = new double[]{0.0, 1.0, 0.0, Double.MIN_VALUE};
		contentPane.setLayout(gbl_contentPane);
		
		{
			topImagePanel = new JImagePane();
			topImagePanel.setBackground(new Color(255,255,255));
			topImagePanel.setImage(Toolkit.getDefaultToolkit().getImage(IMconst.IMAGE_DIR + "/QQ.png"));
			GridBagConstraints gbc_topImagePanel = new GridBagConstraints();
			gbc_topImagePanel.insets = new Insets(0, 0, 0, 0);
			gbc_topImagePanel.fill = GridBagConstraints.BOTH;
			gbc_topImagePanel.gridx = 0;
			gbc_topImagePanel.gridy = 0;
			contentPane.add(topImagePanel, gbc_topImagePanel);
		}
		{
			centerImagePanel = new JImagePane();
			GridBagConstraints gbc_centerImagePanel = new GridBagConstraints();
			gbc_centerImagePanel.insets = new Insets(0, 0, 0, 0);
			gbc_centerImagePanel.fill = GridBagConstraints.BOTH;
			gbc_centerImagePanel.gridx = 0;
			gbc_centerImagePanel.gridy = 1;
			contentPane.add(centerImagePanel, gbc_centerImagePanel);
			{
				GridBagLayout gbl_centerImagePanel = new GridBagLayout();
				gbl_centerImagePanel.columnWidths = new int[]{108, 182, 0};
				gbl_centerImagePanel.rowHeights = new int[]{36, 0};
				gbl_centerImagePanel.columnWeights = new double[]{0.0, 1.0, Double.MIN_VALUE};
				gbl_centerImagePanel.rowWeights = new double[]{1.0, Double.MIN_VALUE};
				centerImagePanel.setLayout(gbl_centerImagePanel);
				{
					avatarImagePanel = new JImagePane();
					avatarImagePanel.setImage(Toolkit.getDefaultToolkit().getImage(IMconst.IMAGE_DIR + "/QQ_LOGO.png"));
					GridBagConstraints gbc_avatarImagePanel = new GridBagConstraints();
					gbc_avatarImagePanel.insets = new Insets(0, 0, 0, 5);
					gbc_avatarImagePanel.fill = GridBagConstraints.BOTH;
					gbc_avatarImagePanel.gridx = 0;
					gbc_avatarImagePanel.gridy = 0;
					centerImagePanel.add(avatarImagePanel, gbc_avatarImagePanel);
				}
				{
					panel = new JPanel();
					GridBagConstraints gbc_panel = new GridBagConstraints();
					gbc_panel.fill = GridBagConstraints.BOTH;
					gbc_panel.gridx = 1;
					gbc_panel.gridy = 0;
					centerImagePanel.add(panel, gbc_panel);
					{
						GridBagLayout gbl_panel = new GridBagLayout();
						gbl_panel.columnWidths = new int[]{180, 39, 0};
						gbl_panel.rowHeights = new int[]{42, 29, 0, 0};
						gbl_panel.columnWeights = new double[]{1.0, 0.0, Double.MIN_VALUE};
						gbl_panel.rowWeights = new double[]{0.0, 0.0, 1.0, Double.MIN_VALUE};
						panel.setLayout(gbl_panel);
						{
				
							nameInput = new JCComboBox();
							nameInput.setEditable(true);
							nameInput.setPreferredSize(new Dimension(180, 28));
							nameInput.setModel(new DefaultComboBoxModel(new String[] {"死腾讯-你妹", "死马化腾-你妹", "\u7535\u89C6\u5267\u5076\u5BB6\u5EA6\u641C", "\u4E0A\u5927\u6982\u591A\u5C11"}));
							nameInput.setSelectedIndex(1);
							GridBagConstraints gbc_nameInput = new GridBagConstraints();
							gbc_nameInput.anchor = GridBagConstraints.SOUTHWEST;
							gbc_nameInput.insets = new Insets(0, 0, 5, 5);
							gbc_nameInput.gridx = 0;
							gbc_nameInput.gridy = 0;
							panel.add(nameInput, gbc_nameInput);
						}
						{
							registerLabel = new JCLabel("注册");
							registerLabel.setCursor(new Cursor(Cursor.HAND_CURSOR));
							registerLabel.setForeground(new Color(22, 112, 235));
							GridBagConstraints gbc_registerLabel = new GridBagConstraints();
							gbc_registerLabel.anchor = GridBagConstraints.WEST;
							gbc_registerLabel.insets = new Insets(5, 0, 5, 0);
							gbc_registerLabel.gridx = 1;
							gbc_registerLabel.gridy = 0;
							panel.add(registerLabel, gbc_registerLabel);
						}
						{
							pwdInput = new JCLimitedPassword(20);
							pwdInput.setPreferredSize(nameInput.getPreferredSize());
							GridBagConstraints gbc_pwdInput = new GridBagConstraints();//54,97,138
							gbc_pwdInput.anchor = GridBagConstraints.WEST;
							gbc_pwdInput.insets = new Insets(0, 0, 0, 5);
							gbc_pwdInput.gridx = 0;
							gbc_pwdInput.gridy = 1;
							pwdInput.setText("0000");
							panel.add(pwdInput, gbc_pwdInput);
						}
						{
							retrieveLabel = new JCLabel("找回");
							retrieveLabel.setCursor(new Cursor(Cursor.HAND_CURSOR));
							retrieveLabel.setForeground(registerLabel.getForeground());
							GridBagConstraints gbc_retrieveLabel = new GridBagConstraints();
							gbc_retrieveLabel.anchor = GridBagConstraints.WEST;
							gbc_retrieveLabel.insets = new Insets(5, 0, 5, 0);
							gbc_retrieveLabel.gridx = 1;
							gbc_retrieveLabel.gridy = 1;
							panel.add(retrieveLabel, gbc_retrieveLabel);
						}
						{
							panel_1 = new JPanel();
							FlowLayout flowLayout_1 = (FlowLayout) panel_1.getLayout();
							flowLayout_1.setAlignment(FlowLayout.LEFT);
							GridBagConstraints gbc_panel_1 = new GridBagConstraints();
							gbc_panel_1.gridwidth = 2;
							gbc_panel_1.fill = GridBagConstraints.HORIZONTAL;
							gbc_panel_1.gridx = 0;
							gbc_panel_1.gridy = 2;
							panel.add(panel_1, gbc_panel_1);
						}
						{
							bar = new JMenuBar();
							bar.setOpaque(false);
					        bar.setBorder(new EmptyBorder(0, 0, 0, 0));
					        bar.setBorderPainted(false);
					        bar.setLayout(new GridLayout(1, 2));
					        bar.setPreferredSize(new Dimension(40, 20));
					        bar.setFocusable(false);
							panel_1.add(bar);
							{
								menu = new JCMenu("QQJ");
								menu.setShowWhenRollover(false);
								
								menu.setRolloverEnabled(false);
								bar.add(menu);
								
								JCMenuItem menuItem = new JCMenuItem();
								menuItem.setText("我在线");
								menu.add(menuItem);
							}
						}
					}
				}
				{
					rememberCheckBox = new JCCheckBox("记住密码");
					panel_1.add(rememberCheckBox);
				}
				{
					automaticLoginCheckBox = new JCCheckBox("自动登陆");
					panel_1.add(automaticLoginCheckBox);
				}
			}
		}
		{
			endPanel = new JPanel();
			FlowLayout flowLayout = (FlowLayout) endPanel.getLayout();
			flowLayout.setAlignment(FlowLayout.RIGHT);
			endPanel.setBackground(new Color(190,230,250));
			GridBagConstraints gbc_endPanel = new GridBagConstraints();
			gbc_endPanel.fill = GridBagConstraints.BOTH;
			gbc_endPanel.gridx = 0;
			gbc_endPanel.gridy = 2;
			contentPane.add(endPanel, gbc_endPanel);
			{
				loginButton = new JCButton("安全登陆");
				loginButton.setPreferredSize(new Dimension(80,23));
				endPanel.add(loginButton);
			}
		}
	
	}
	
	/**
	 * 初始化事件
	 */
	private void initAction(){
		//找回密码多选按钮
		UIUtil.actionLabel(retrieveLabel, new AbstractAction() {
            private static final long serialVersionUID = 1314650981076868723L;

            public void actionPerformed(ActionEvent e)
            {
               System.out.println("retrieveLabel");
            }
        });
		//注册多选按钮
		UIUtil.actionLabel(registerLabel, new AbstractAction(){
            private static final long serialVersionUID = 1314650981076868723L;

            public void actionPerformed(ActionEvent e)
            {
               System.out.println("registerLabel");
            }
        });
		//自动登录事件
		automaticLoginCheckBox.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent e) {
				if(automaticLoginCheckBox.isSelected()){
					rememberCheckBox.setSelected(true);//设置记住密码
				}
			}
		});
		loginButton.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent e) {
				JCMessageBox.createInformationMessageBox(LoginFrame.this, "提示", "登录成功").open();
			}
		});
	}
	
	@Override
	public void setVisible(boolean b) {
		super.setVisible(b);
		initValues();
	}
	
	/**
	 * 初始化界面默认属性
	 */
	private void initValues(){
		pwdInput.requestFocus();
	}
	
	private JCMenu menu;
	private JCCheckBox automaticLoginCheckBox, rememberCheckBox;
	private JPanel endPanel, panel_1, panel;
	private JCButton loginButton;
	private JCLabel retrieveLabel, registerLabel;
	private JImagePane topImagePanel;
	private JImagePane centerImagePanel, avatarImagePanel;
	private JCComboBox nameInput;
	private JCLimitedPassword pwdInput;
	private JMenuBar bar;
}
  • 大小: 29.8 KB
  • 大小: 154.3 KB
分享到:
评论
10 楼 tuyuan 2018-03-07  
非常抱歉各位, 我13年后就没有做Java开发了.所以没有上博客.
非常抱歉,我最近会吧这些源码开放到github上面,.
9 楼 sf_dream 2014-10-31  
楼主,我好想看看你那个好友列表是怎么做的啊,JTree吗?
8 楼 zhunengfei 2014-10-31  
楼主 你老人家到底是去哪里了/??
7 楼 sf_dream 2014-10-30  
楼主,求源码啊!sf_dream@sina.com或者1347384268@qq.com
6 楼 zhunengfei 2014-07-10  
豪,友乎??
5 楼 执念鱼 2013-11-13  
楼主可以发份源码么,353022791@qq.com不胜感激,我主要是想看一下SWING里的动态加载控件是怎么实现的,我用的SWT里目前出现这样的问题一次需要生成的控件太多加载速度过慢想做一个可适配的滚动时候自动生成控件和释放控件的机制貌似您的消息列表里会有这样的写法
4 楼 duandxy 2013-05-06  
楼主,可不可以把好友列表实现的源码发一份啊,18717134610@139.com
3 楼 love_smallbear 2013-02-02  
楼主,发套源码研究研究呗,感谢楼主  xybiao2005#163.com
2 楼 Ts_Coo 2012-12-22  
不错,楼主加油啊
1 楼 lovecluo 2012-11-21  
求源码。感谢楼主 1103934424@qq.com

相关推荐

    java swing版qq

    使用java swing开发的仿qq功能,主要使用多线程、socket,客户端发送消息在服务器端可以接受,还可以两个客户端聊天 ----基于myEcplise写的

    基于java的开发源码-Java swing仿qq聊天软件.zip

    基于java的开发源码-Java swing仿qq聊天软件.zip 基于java的开发源码-Java swing仿qq聊天软件.zip 基于java的开发源码-Java swing仿qq聊天软件.zip 基于java的开发源码-Java swing仿qq聊天软件.zip 基于java的开发...

    java swing简单版qq

    用java实现的简单的qq,有图形化界面,swing开发,可以实现聊天,更换皮肤等简单功能

    java swing漂亮界面 超酷 javaswing教程

    java swing漂亮界面 超酷 javaswing教程

    仿QQ聊天系统(java swing)

    仿QQ聊天系统,运用技术java swing,其中用到了大量的线程,socket,特别适合j2se的初学者!内含数据库

    java swing实现仿QQ聊天器

    java swing 仿QQ 聊天器 源代码

    javaswing仿QQ

    javaswing编写的仿QQ界面以及聊天功能 ,还有添加了智能对话,对接入API提供了一个完美的实例!

    java swing 做的QQ聊天程序

    用 Java swing做的QQ聊天程序,可以在局域网内聊天, 客户端和服务器简单易懂,功能齐全,可以注册,可以登陆,希望支持

    java swing高仿QQ截屏源码

    java swing高仿QQ截屏源码,导入ecplise直接运行即可,保证可用,保证高仿,一定不会让您失望。

    javaswing 模拟QQ聊天

    自己做的javaswing作业 模拟QQ聊天工具 进行多线程通信

    仿QQ java Swing

    使用Java Swing开发的仿QQ功能,由于开发时间比较短,所以该代码作为初学者可以提供一些帮助与参考。 1、客户端展示和接收数据,服务器端与数据库进行交互处理。 2、使用Tcp的Socket。 3、实现新消息托盘图标闪烁。

    Java Swing仿QQ聊天窗口泡泡风格源代码.rar

    Java Swing仿QQ聊天窗口泡泡风格源代码,现在微信聊天里的也是这种泡泡的风格,这样比以前QQ那种混杂式视觉上更清淅,本款源代码是用Java仿写QQ聊天泡泡窗口模式,其实这款代码是针对Android系统写的,源代码中有很...

    java聊天室适用java swing SOCKET QQ

    java聊天室适用java swing SOCKET QQ

    java Swing实现的仿qq

    java Swing实现的仿qq,需要登录客户端(输入服务器端ip),服务器端,可以一对一聊天,

    java Swing 聊天源码

    Java Swing 模仿QQ的聊天程序源码,TCP通信 使用mina框架,仅兴趣爱好写着完。

    利用JavaSwing、JavaSound实现简易音乐播放器

    实现了音乐列表、播放、暂停、上下歌曲切换等音乐播放器基本功能。利用到JavaSwing、多线程、音乐控制等多个知识点。且代码注释详细。欢迎下载~有问题可以私信我噢 ^_^

    Java Swing RSS阅读器

    基于JAVA SWING的RSS阅读器,使用JDOM解析本地XML文件

    猿聊(仿QQ项目Java Swing)

    使用技术:java Swing IO流 Socket网络编程 实现功能:注册、登录、私聊、群聊、查找好友、加好友、消息带样式发送(字体,字号,字体颜色,背景颜色),抖动窗口等

    java swing 图书管理系统+MySQL

    Java Swing GUI 图形界面窗口开发的图书管理系统 ,里面有数据库文件和源码,大学期间的java课程设计.

    QQ面板javaSwing

    自动分页的面板制作QQ面板javaSwing

Global site tag (gtag.js) - Google Analytics