Java 设计 QQ登陆界面

package com.wbq.event;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

//1.创建名为Login的类,在该类中创建一个名为InitUI的方法,图形界面就在此方法中实现
public class Login {
	
	public static void main(String[] args) {
		Login log = new Login();
		log.InitUI();

	}

	public void InitUI() {
		final JTextField nametext = new JTextField();
		 char keyvaule[] ={' ',}; 
		/********************** 键盘事件 *************************/
		KeyListener kl = new KeyListener() {
			//完成一次完整的敲击键盘上某个键的过程(按下和松开)
			@Override
			public void keyTyped(KeyEvent arg0) {
				
				
				// TODO Auto-generated method stub
				System.out.println("键盘敲击了..arg0 = "+arg0.getKeyChar());
				//nametext.setText("士大夫要");
				System.out.println(nametext.getText());
			}
			//松开键
			@Override
			public void keyReleased(KeyEvent arg0) {
				// TODO Auto-generated method stub
				System.out.println("键盘释放了..");
			}
			//按下键时调用。
			@Override
			public void keyPressed(KeyEvent arg0) {
				// TODO Auto-generated method stub
				System.out.println("键盘按下了..");
			}
		};
		
		/********************** 鼠标事件 *************************/
		MouseListener ml = new MouseListener() {
			
			//在组件上释放鼠标按钮时调用
			@Override
			public void mouseReleased(MouseEvent arg0) {
				// TODO Auto-generated method stub
				System.out.println("鼠标释放了..");
			}
			
			//在组件上按下鼠标按钮时调用。
			@Override
			public void mousePressed(MouseEvent arg0) {
				// TODO Auto-generated method stub
				System.out.println("鼠标点下了..");
			}
			
			//当鼠标退出组件时调用。
			@Override
			public void mouseExited(MouseEvent arg0) {
				// TODO Auto-generated method stub
				System.out.println("鼠标退出了..");
			}
			
			//当鼠标进入组件时调用
			@Override
			public void mouseEntered(MouseEvent arg0) {
				// TODO Auto-generated method stub
				System.out.println("鼠标移入了..");
			}
			
			//在组件上单击(按下并释放)鼠标按钮时调用。 
			@Override
			public void mouseClicked(MouseEvent arg0) {
				// TODO Auto-generated method stub
				System.out.println("鼠标点击了..");
			}
		};
		
		// 1.1创建一个顶级容器,也就是空白窗口,并为此窗口设置属性(窗口名称,大小,显示位置,关闭设置)

		// 用JFrame创建一个名为frame的顶级容器,需要添加的包名为javax.swing.JFrame
		JFrame frame = new JFrame();
		// 设置窗口名称
		frame.setTitle("QQ登陆");
		// 设置窗口大小
		frame.setSize(540, 427);
		// 设置窗口位于屏幕中央
		frame.setLocationRelativeTo(null);
		// 参数为3时,表示关闭窗口则程序退出
/**
DO_NOTHING_ON_CLOSE (定义在WindowConstants ):不要做任何事情; 要求程序处理WindowListener对象的windowClosing方法的操作。 
HIDE_ON_CLOSE (在WindowConstants定义):在调用任何已注册的WindowListener对象后自动隐藏框架。 
DISPOSE_ON_CLOSE (在WindowConstants定义):在调用任何已注册的WindowListener对象后自动隐藏和处理该框架。 
EXIT_ON_CLOSE (在JFrame定义):使用System exit方法退出exit程序。 仅在应用程序中使用。 
*/
		frame.setDefaultCloseOperation(3);//0:无法关闭  3:可以关闭

		// 1.2设置窗体上组件的布局,此处使用流式布局FlowLayout,流式布局类似于word的布局
		// 用FlowLayout创建一个名为f1的对象,需要添加的包名为java.awt.FlowLayout,其中LEFT表示左对齐,CENTER表示居中对齐,RIGHT表示右对齐
		FlowLayout f1 = new FlowLayout(FlowLayout.LEFT);
		// frame窗口设置为f1的流式左对齐
		frame.setLayout(f1);

		// 1.3在窗体上添加图片,文字

		// 在添加图片之前,先把图片从磁盘中加载到内存中来,使用ImageIcon,需要添加的包名为javax.swing.ImageIcon,括号中为图片路径,路径中要使用”/”,不能使用”\”
		ImageIcon imag1 = new ImageIcon("img/59.png");
		// JLabel可在顶级容器中添加图片文字,需要添加的包名javax.swing.JLabel,此处将上面加载的图片创建为一个JLabel对象
		JLabel pic1 = new JLabel(imag1);
		// 将创建的图片对象添加到 窗口上
		frame.add(pic1);

		// 创建一个空的JLabel,它的长度宽度为110,30,因为窗口是流式左对齐,为了将”账号”一栏添加在正中间,所以左侧由空的JLabel填充
		JLabel name1 = new JLabel();
		// 设置空JLabel长度大小,此处不能使用setSize设置大小,setSize只能设置顶级容器大小,此处用setPreferredSize,Dimension给出大小,需要添加的包名为java.awt.Dimension.
		name1.setPreferredSize(new Dimension(110, 30));
		// 将空JLabel添加入窗口
		frame.add(name1);

		// 同上,此处添加的不是空JLabel,而是内容为“账号”的JLabel
		JLabel name = new JLabel("账号:");
		frame.add(name);

		// JTextField在窗口上添加一个可输入可见文本的文本框,需要添加的包名为javax.swing.JTextField.
		//JTextField nametext = new JTextField();
		nametext.addKeyListener(kl);
		
		// 设置文本框大小
		nametext.setPreferredSize(new Dimension(220, 30));
		// 添加到窗口上
		frame.add(nametext);

		// 同name1
		JLabel name2 = new JLabel();
		name2.setPreferredSize(new Dimension(110, 30));
		frame.add(name2);

		// 同name1
		JLabel name3 = new JLabel();
		name3.setPreferredSize(new Dimension(110, 30));
		frame.add(name3);

		// 同name
		JLabel password = new JLabel("密码:");
		frame.add(password);

		// JPasswordField创建一个密码文本框,里面输入的文本是不可见的,其他同nametext
		JPasswordField passwordtext = new JPasswordField();
		passwordtext.setPreferredSize(new Dimension(220, 30));
		frame.add(passwordtext);

		// 同name1
		JLabel name4 = new JLabel();
		name4.setPreferredSize(new Dimension(110, 30));
		frame.add(name4);

		// 同name1
		JLabel name5 = new JLabel();
		name5.setPreferredSize(new Dimension(220, 30));
		frame.add(name5);

		//ActionListener接口
		ActionListener al = new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				System.out.println("被点了");
				
			}
		};
		
		// JButton创建一个可点击的按钮,按钮上可显示文本图片
		JButton bu = new JButton("登录");
		bu.addActionListener(al);//事件注册,注册被点了这个输出事件
		bu.addMouseListener(ml);//注册鼠标事件 
		bu.setPreferredSize(new Dimension(80, 30));
		frame.add(bu);

		// 设置窗口可见,此句一定要在窗口属性设置好了之后才能添加,不然无法正常显示
		frame.setVisible(true);
		//nametext.setText("你好世界");
		System.out.println(nametext.getText());
	}
}

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 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 部分可以根据实际需要添加登录验证逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值