JAVA编写QQ登录界面

在开始学习JAVA图形界面编程中,老师留的第一个作业就是编写一个QQ登录界面,本来我的JAVA就不怎么会写,所以就在网上找啊找,结果就翻到了某位大佬的博客,参考了许多,附上大佬链接http://wz94.iteye.com/blog/1932255

下面是自己根据大佬的程序,写的自己的(其实和大佬的已经差不多了,基本等于抄的。。。。)

先附上效果图


能力有限,加上偷工减料,比大佬的少了很多功能~~~应付作业是够了大笑


package p1;

import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class qqlogin extends JFrame{
	JButton jbg,jbz,jbt1;
	JTextField jc;
	JPasswordField jps;
	public qqlogin() {
		BorderLayout g1 = new BorderLayout();
		this.setTitle("登录QQ");
		this.setLayout(g1);
		/*******添加背景图片*******/
		ImageIcon image = new ImageIcon("tupian//qqbeijing.jpg");
		JLabel l1 = new JLabel(image);
		l1.setBounds(0,0,image.getIconWidth(),image.getIconHeight());
	    this.getLayeredPane().add(l1,new Integer(Integer.MIN_VALUE)); 
	    JPanel contentPanel = (JPanel)this.getContentPane();  
	    contentPanel.setOpaque(false);
	    /**********添加各个部分面板*************/
	    
	    
	    /*******北部面板******/
	    JPanel jpn = creatpanelno();
	    this.add(jpn,g1.NORTH);
	    /*******中间面板*******/
	    JPanel jpc = creatpanelce();
	    this.add(jpc,g1.CENTER);
	    
	    
	    /*******西部面板*******/
	    JPanel jpw = creatpanelwe();
	    this.add(jpw,g1.WEST);
	    
	    /*******南部面板*******/
	    JPanel jps = creatpanelsou();
	    this.add(jps,g1.SOUTH);
	    
	    /******消除边框****/
	    this.setUndecorated(true);
	    this.setResizable(true);
	    this.setVisible(true);
		this.setSize(380,294);
		this.setLocation(497,242);
	}
	private JPanel creatpanelno() {
		JPanel pn = new JPanel();  
		pn.setLayout(null);  
		//设置北边面板容器的大小  
		pn.setPreferredSize(new Dimension(0,140)); 
		/******关闭按钮*****/
		jbg = new JButton("G");
		jbg.setBounds(342,-1,39,20);
		jbg.setBorderPainted(false);  
		jbg.setFocusPainted(false);  
		jbg.setToolTipText("关闭");
		/*********匿名类,点击关闭按钮,关闭***********/
		ActionListener guanbi = new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				dispose();
			} 
		};
		jbg.addActionListener(guanbi);
		pn.add(jbg);
		jbz = new JButton("Z");
		jbz.setBounds(315,-1,28,20); 
		jbz.setBorderPainted(false);  
		jbz.setFocusPainted(false);  
		jbz.setToolTipText("最小化");
		/*********匿名类,点击最小化按钮最小化***********/
		ActionListener mini=new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				setExtendedState(ICONIFIED);
			} 
		};
		jbz.addActionListener(mini);
		pn.add(jbz);
		pn.setOpaque(false);
		return pn;
	}
	private JPanel creatpanelsou() {
		JPanel ps = new JPanel();
		ps.setPreferredSize(new Dimension(0,51));
		ps.setBorder(null);
		ps.setLayout(null);
		jbt1 = new JButton("登      录");
		jbt1.setFont(new Font("宋体",0,13));
		jbt1.setBounds(113,8,162,30);
		jbt1.setBorderPainted(false); 
		jbt1.setFocusPainted(false);//设置点击不出现边框  
		jbt1.addActionListener(new ActionLis());
		ps.add(jbt1);
		ps.setOpaque(false);
		return ps;
	}
	private JPanel creatpanelwe() {
		JPanel pw = new JPanel();
		pw.setPreferredSize(new Dimension(102,0));
		pw.setLayout(new FlowLayout(FlowLayout.RIGHT)); 
		ImageIcon iw = new ImageIcon("tupian//qqw.jpg");
		JLabel lw = new JLabel(iw);
		lw.setBounds(206,100,iw.getIconWidth(),iw.getIconHeight());
		pw.add(lw);
		pw.setOpaque(false);
		return pw;
	}
	private JPanel creatpanelce() {
		JPanel pc = new JPanel();
		pc.setLayout(null);
	    jc = new JTextField();  
	    pc.add(jc);  
	    jc.setBounds(7, 18, 185, 25);  
	    jc.setFont(new Font("Calibri ",0,13));  
		/***注册账号标签******/
		JLabel jl1 = new JLabel("注册账号");
		pc.add(jl1);
		jl1.setFont(new Font("宋体",0,13));
		jl1.setForeground(new Color(114,184,254));  
        jl1.setBounds(206,20,100,16);
        /******密码框******/
        jps = new JPasswordField();  
        jps.setLayout(new FlowLayout(FlowLayout.RIGHT,0,0));  
        LineBorder lin = new LineBorder(Color.WHITE,3,true);  
        jps.setBorder(lin);  
        jps.setBounds(7,55,185,23);  
        jps.setPreferredSize(new Dimension(185,25));  
        pc.add(jps);  
        /*******找回密码标签******/
        JLabel jl2 = new JLabel("找回密码");
        jl2.setFont(new Font("宋体",0,12));  
        jl2.setForeground(new Color(114,184,254));  
        jl2.setBounds(206, 55, 100, 16);  
        pc.add(jl2);  
        /*******两个复选框*******/
        JCheckBox jch1 = new JCheckBox("记住密码");
        jch1.setFocusPainted(false); //选中时没有边框  
        jch1.setFont(new Font("宋体",0,13));//字体  
        jch1.setBounds(2, 83, 80, 15);
        pc.add(jch1);
        JCheckBox jch2 = new JCheckBox("自动登录");  
        jch2.setFocusPainted(false);  
        jch2.setFont(new Font("宋体",0,12));  
        jch2.setBounds(80, 83, 80, 15);  
        pc.add(jch2);
        jch1.setOpaque(false);  
        jch2.setOpaque(false);  
        pc.setOpaque(false);
		return pc;
	}
	class ActionLis implements ActionListener{

		public void actionPerformed(ActionEvent e) {
			JButton b = (JButton) e.getSource();
			String qt = "admin";
			String qp = "123456";
			if( b == jbt1) {
				String ID = jc.getText();
				String password = jps.getText();
				if(ID.equals(qt) && password.equals(qp)) {
						setVisible(false);
						JFrame jf = new JFrame("登录成功");
						JPanel pp = new JPanel();
						ImageIcon im = new ImageIcon("tupian//denglu.jpg");
						JLabel ll = new JLabel(im);
						ll.setBounds(206,100,im.getIconWidth(),im.getIconHeight());
						pp.add(ll);
						jf.add(pp);
						jf.setSize(im.getIconWidth(),im.getIconHeight());
						jf.setLocation(1500,0);
						jf.setVisible(true);
						jf.setResizable(false);
				}else {
					JFrame jf = new JFrame("登录失败");
					JPanel pp = new JPanel();
					ImageIcon im = new ImageIcon("tupian//shibai.jpg");
					JLabel ll = new JLabel(im);
					ll.setBounds(206,150,im.getIconWidth(),im.getIconHeight());
					pp.add(ll);
					jf.add(pp);
					jf.setSize(im.getIconWidth(),im.getIconHeight());
					jf.setLocation(500,300);
					jf.setVisible(true);
					jf.setResizable(false);
				}
			}
		}
	}
	public static void main(String[] args) {
		new qqlogin();
	}

}

有需要的朋友们最好还是参考大佬的,JAVA路很长,还是不要偷懒的好~~~

以下是一个简单的 Java 编写QQ 登录界面的示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class QQLogin extends JFrame implements ActionListener { private JLabel label1, label2; private JTextField text1; private JPasswordField text2; private JButton button1, button2; public QQLogin() { setTitle("QQ登录"); setSize(300, 180); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); setLocationRelativeTo(null); label1 = new JLabel("QQ号码:"); label2 = new JLabel("QQ密码:"); text1 = new JTextField(20); text2 = new JPasswordField(20); button1 = new JButton("登录"); button2 = new JButton("取消"); JPanel panel1 = new JPanel(); panel1.setLayout(new GridLayout(2, 1)); panel1.add(label1); panel1.add(label2); JPanel panel2 = new JPanel(); panel2.setLayout(new GridLayout(2, 1)); panel2.add(text1); panel2.add(text2); JPanel panel3 = new JPanel(); panel3.setLayout(new FlowLayout()); panel3.add(button1); panel3.add(button2); setLayout(new BorderLayout()); add(panel1, BorderLayout.WEST); add(panel2, BorderLayout.CENTER); add(panel3, BorderLayout.SOUTH); button1.addActionListener(this); button2.addActionListener(this); } public void actionPerformed(ActionEvent e) { if (e.getSource() == button1) { String qq = text1.getText().trim(); String pwd = new String(text2.getPassword()).trim(); if ("".equals(qq) || "".equals(pwd)) { JOptionPane.showMessageDialog(this, "请输入QQ号码和密码!", "提示", JOptionPane.WARNING_MESSAGE); return; } // TODO: 在这里添加登录验证逻辑 JOptionPane.showMessageDialog(this, "QQ号码或密码错误,请重新输入!", "提示", JOptionPane.WARNING_MESSAGE); text1.setText(""); text2.setText(""); } else if (e.getSource() == button2) { System.exit(0); } } public static void main(String[] args) { QQLogin login = new QQLogin(); login.setVisible(true); } } ``` 该示例使用了 Java 的图形用户界面(GUI)库 Swing,通过 JFrame、JLabel、JTextField、JPasswordField 和 JButton 等组件实现了一个简单的 QQ 登录界面。其中,actionPerformed 方法中的 TODO 部分可以根据实际需要添加登录验证逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值