`
tuyuan
  • 浏览: 31150 次
  • 性别: 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是一款使用Java编程语言的Swing库开发的桌面应用程序,旨在模拟腾讯QQ的基本功能,如聊天、多用户交互等。Swing是Java的标准GUI(图形用户界面)工具包,提供了丰富的组件和功能来构建桌面应用。下面...

    java swing简单版qq

    在这个“java swing简单版qq”项目中,开发者利用Swing构建了一个基础的即时通讯应用,模拟了QQ的基本功能,如聊天和更换皮肤。下面我们将深入探讨Java Swing以及如何使用它来实现这样的应用程序。 首先,Swing是...

    基于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的开发...

    仿QQ聊天系统(java swing)

    Swing是Java标准版(J2SE)的一部分,用于构建图形用户界面(GUI)的库,具有丰富的组件和可自定义的外观。 【描述】中提到,该系统运用了Java的多线程技术。在聊天应用中,多线程是至关重要的,因为它需要同时处理...

    java swing漂亮界面 超酷 javaswing教程

    在“Java Swing漂亮界面 超酷 JavaSwing教程”中,我们主要会探讨如何利用Swing来设计美观且用户友好的界面。Swing组件的一大优点是它们是轻量级的,这意味着它们完全由Java代码实现,而不是依赖于操作系统提供的...

    javaswing仿QQ

    在"javaswing仿QQ"项目中,开发者利用Swing库创建了一个模仿腾讯QQ的桌面应用程序,旨在提供类似QQ的聊天体验。这个项目不仅关注UI设计,还实现了基本的聊天功能,甚至包括智能对话,这可能涉及到自然语言处理(NLP...

    java swing高仿QQ截屏源码

    本项目"java swing高仿QQ截屏源码"是一个基于Java Swing开发的屏幕截图工具,它的目标是模仿QQ的截图功能,提供类似的功能和用户体验。QQ的截图工具以其简洁易用而著名,它允许用户快速选取屏幕上的任何区域进行截图...

    java swing 做的QQ聊天程序

    在本项目中,"java swing 做的QQ聊天程序"是一个基于Java Swing实现的简易即时通讯应用,允许用户在局域网内进行聊天。它具备了基本的聊天功能,如注册、登录等,适合初学者学习和理解网络通信及GUI编程。 1. **...

    java swing实现仿QQ聊天器

    java swing 仿QQ 聊天器 源代码

    javaswing 模拟QQ聊天

    在"javaswing 模拟QQ聊天"这个项目中,我们看到一个学生或开发者尝试使用Java Swing来构建一个类似于QQ的聊天应用程序,这涉及到多线程通信,这是在进行实时交互应用时的关键技术。 1. **Java Swing基础知识**: -...

    java swing 高仿QQ登录界面

    在这个"java swing 高仿QQ登录界面"项目中,开发者旨在创建一个与真实QQ登录界面相似的界面,让用户有接近真实的体验。2013年,这样的项目对于Java初学者来说是一份很好的实践教程,因为它涵盖了Swing中的许多关键...

    仿qq2012 java swing

    《仿QQ2012 Java Swing 实现解析》 在Java编程领域,Swing库是构建桌面应用程序的重要工具,它提供了丰富的用户界面组件和强大的功能。本项目“仿qq2012 java swing”旨在模仿腾讯QQ2012的界面和部分功能,通过Java...

    仿QQ登陆界面 java.swing

    【标题】"仿QQ登陆界面 java.swing...以上就是基于Java Swing构建仿QQ登录界面涉及的主要知识点和可能的改进方向。对于初学者来说,这是一个很好的实践项目,可以帮助他们深入理解Swing库的使用,并提升GUI编程技能。

    仿QQ java Swing

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

    java Swing实现的仿qq

    在"java Swing实现的仿qq"项目中,我们将会探讨如何使用Swing来构建一个类似于腾讯QQ的客户端应用。 首先,我们需要理解Swing中的基本组件和布局管理器。例如,JFrame是窗口的基础,JLabel用于显示文本或图标,...

    JavaSwing的QQ聊天系统

    JavaSwing的QQ聊天系统是一个基于Java编程语言的桌面应用程序,它使用了Swing库来构建用户界面,模仿QQ的基本聊天功能。Swing是Java的标准GUI(图形用户界面)工具包,提供了丰富的组件和功能,使得开发者能够创建出...

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

    在本项目中,我们利用JavaSwing库构建了一个简易的音乐播放器,它具备了基本的音乐播放功能,包括音乐列表展示、播放控制、歌曲切换等。JavaSwing是Java提供的一个图形用户界面(GUI)工具包,允许开发者创建丰富的...

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

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

    JavaSwing实现的QQ

    【Java Swing实现的QQ】是一个基于Java图形用户界面(GUI)库Swing开发的应用程序,它旨在模拟并实现QQ的基本功能。Swing是Java Standard Edition(Java SE)的一部分,提供了丰富的组件库,用于构建桌面应用程序。...

    Swing做的高仿QQ登陆界面

    Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,用于构建桌面应用程序。本项目“Swing做的高仿QQ登陆界面”旨在为初学者提供一个学习Swing GUI设计和实现简单...

Global site tag (gtag.js) - Google Analytics