当前位置:网站首页>模拟QQ登陆界面
模拟QQ登陆界面
2022-07-22 10:35:00 【小十一吖】
Swing GUI界面设计
1.掌握Swing常用的组件的使用;
2.掌握程序界面开发的步骤;
3.掌握事件监听器的使用。
通过对时钟监听的学习,今天初步完成了一个基本的登录界面(只能实现界面的可视化,无法进行真正的注册与登陆)
这里我原本是想要将登陆面板的背景设置为透明的,但是从网上找了许多方法都实现不了,只能变成灰色。
在代码实现过程中,运用了层级面板,我是从我们老师给我们发的API文档里面所学习,想要学习的同学可以去添加链接描述
接下来附上代码`package cy;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
@SuppressWarnings(“serial”)
public class QQLogin extends JFrame implements ActionListener{
JButton jb1=new JButton(“登录”);
JButton jb2=new JButton(“取消”);
JLabel jl1= new JLabel(“用户名:”);
JTextField jtf = new JTextField(20);
JLabel jl2= new JLabel(“密 码:”);
JTextField jpf = new JTextField(20);
public QQLogin(){
ImageIcon bgImage = new ImageIcon("img/1.png"); // 背景图片
JPanel bgPanel = new JPanel(); //背景面板
JFrame jf=new JFrame("QQ登录窗口");
JLayeredPane layeredPane = new JLayeredPane();
layeredPane.setBounds(0, 0, 600, 544);
bgPanel.setBounds(0, 0, 600, 544);
layeredPane.add(bgPanel, new Integer(Integer.MIN_VALUE));
JLabel bgLabel = new JLabel(bgImage);
bgPanel.add(bgLabel);
Font font = new Font("黑体",Font.PLAIN,20);
jl1.setFont(font);
jtf.setFont(font);
jl2.setFont(font);
jpf.setFont(font);
jf.setSize(400,300);
JPanel mainpanel=new JPanel();
mainpanel.setBounds(50, 50, 300, 190);
mainpanel.setLayout(new GridLayout(4,1));
mainpanel.setBackground(Color.WHITE); //先加个背景颜色
mainpanel.setOpaque(false); //把panel的背景色设为透明
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
jp1.add(jl1);
jp1.add(jtf);
jp2.add(jl2);
jp2.add(jpf);
jp3.add(jb1);
jp3.add(jb2);
mainpanel.add(jp1);
mainpanel.add(jp2);
mainpanel.add(jp3);
layeredPane.add(mainpanel);
jf.add(layeredPane);
jf.setVisible(true);
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setResizable(false);
jb1.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
message();
}
});
jb2.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
message1();
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
@SuppressWarnings("unused")
QQLogin QQ_Login=new QQLogin();
}
public void message(){
String str = "用户名:"+ jtf.getText()+
"; 密码:"+ jpf.getText();
JOptionPane.showMessageDialog(this,str);
}
public void message1(){
JOptionPane.showMessageDialog(this,"取消登录");
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
`
边栏推荐
猜你喜欢
Leetcode206 - reverse linked list
Her power series 6 - Yang Di 1: when the girl grows up, she can be good at mathematics and chemistry, and scientific research can be very fresh
AMiner论文推荐
mysql索引
本地镜像发布到阿里云
AMBert
机器学习入门:线性回归-1
Easy operation commands of ES for getting started with elastic search (II)
Dense Passage Retrieval for Open-Domain Question Answering笔记
YOLO v1、v2、v3
随机推荐
"Pre training weekly" No. 38: transformer, Bert structure optimization
她力量系列二丨UCLA李婧翌:女性最不需要做的就是「怀疑自己」
Usage and precautions of accumulator used in spark
1045 Favorite Color Stripe (30 分)
7-4 Helping the Couriers (30 分)
JDBC异常SQLException的捕获与处理
LeetCode160 & LeetCode141——double pointers to solve the linked list
Introduction to machine learning: topic model-4
redission看门狗实现过程详解
Her power series 6 - Yang Di 1: when the girl grows up, she can be good at mathematics and chemistry, and scientific research can be very fresh
Core concepts of elastic search learning Introduction (4)
LeetCode912——sort an array—— quick sort algorithm
RP file Chrome browser view plug-in
1034 Head of a Gang (30 分)
docker搭建mysql主从复制
Reinforcement learning weekly 39: approximate optimal depth, multi-agent generalization, character animation reinforcement learning
IDEA下载源码查看
c语言unsigned int和int
LeetCode53——Maximum Subarray——3 different methods
机器学习入门:逻辑回归-2