hi~好久不见吖,我又回来啦,dengdengdeng(他来了,他来了,他带着他新学的知识来啦)
咳咳,只是一个简单的界面,啥也不能干
这段时间我学习了窗体的创建,听老师讲了一会怎么创建QQ登录界面,所以回寝室后我迫不及待的操作了一波,结果,,,并没有我想的那么简单,我只能敲一个简单的一个界面,如何登录,如何存账号,密码,这些,,,额,都需要后期学习数据库才能往下操作,苦逼的我(啥也不知道,呜呜呜)
好叭,话不多说,先让你们看看我敲出来的效果是怎么样的
这是一个截图,敲出后的截图(个人觉得还蛮好看的,ヽ( ̄▽ ̄)ノ)
来吧,下面我讲解一下
首先我们先创建一个属于自己的类去继承JFrame(窗体)这个类
这个类里面要有以上图片所需要的东西,分三个容器panel,然后看到图片,我们知道需要两个图片image,两个按钮button,而三个容器分别装不同的东西。
第一个容器装最上面的图片QQ的那个,第二个容器存放四个标签,两个文本框,最后一个容器也是最下面的那个,用来装两个按钮。
大家看看这上面用到了几个标签呢?
我数了数,一二三四五,上山打老虎,哈哈哈,五个标签哦~第一个标签用来放图片QQ,第二个用来显示“QQ账号”,第三个同理显示“QQ密码”,(噢,忘了说了,我是竖着来的),第四个标签用来存放一个链接“注册账号”,第五个和第四个也一样,都是链接存放(这一部分需要用到一点点HTML的知识点,不过蛮简单的)
两个文本框,一个账号,一个密码。
在这里面我用到了鼠标事件监听器,只是试了一下,学习了一点点有关文本事件的的知识点,看起来更像那么回事((T_T))
package com;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class C {
public static void main(String args[]){
new MyInterface();
}
}
class MyInterface extends JFrame{
//声明对象啦
JPanel jp1,jp2,jp3;//三个容器
JLabel jl1,jl2,jl3,jl4,jl5;//五个标签
JButton jb1,jb2;//两个按钮
JTextField jtf;//文本文件
JPasswordField jpf;//密码文本文件
public MyInterface(){
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
//第一个标签引入图片
jl1=new JLabel(new ImageIcon("d788d43f8794a4c260ce63540df41bd5ac6e39db.jpg"));
//标签二和三是用来显示QQ号码和密码的,Jlabel.CENTER是用来让内容居中
jl2=new JLabel("QQ号码:",JLabel.CENTER);
jl3=new JLabel("QQ密码:",JLabel.CENTER);
//标签三和四运用了一点点HTML的知识点,HTML标签是由尖括号包围的关键词,并且通常成对出现
//<a></a>这是引用链接的标签,<html></html>这是定义一个文本文件,而href是一个属性,标签的 href 属性用于指定超链接目标的 URL
jl4=new JLabel("<html> <a href='www.qq.com' ></a> 注册账号 </html>",JLabel.CENTER);
jl5=new JLabel("<html> <a href='www.qq.com' ></a> 忘记密码 </html>",JLabel.CENTER);
jb1=new JButton("安全登录");
jb2=new JButton("取消");
jtf=new JTextField(10);
jpf=new JPasswordField(10);
//网格布局GridLayout,两行三列,水平间距是5,垂直间距是10
jp2.setLayout(new GridLayout(2,3,5,10));
//将对应的按钮,标签放入容器中
jp1.add(jl1);
jp2.add(jl2);
jp2.add(jtf);
jp2.add(jl4);
jp2.add(jl3);
jp2.add(jpf);
jp2.add(jl5);
jp3.add(jb1);
jp3.add(jb2);
//声明一个小图标
ImageIcon i=new ImageIcon("src=http___nimg.ws.126.net__url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0605%2F766ef3d9p00qu7fg5001bd000v900hcp.png&thumbnail=650x2147483647&quality=80&type=jpg&refer=http___nimg.ws.126.jpg");
this.setIconImage(i.getImage());
//将容器放入窗体中对应的位置
this.add(jp1, BorderLayout.NORTH);
this.add(jp2);
this.add(jp3,BorderLayout.SOUTH);
//将窗体的标题设置为QQ
this.setTitle("QQ");
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
this.setResizable(false);
this.setLocation(400,400);
this.setSize(400,300);
//当鼠标放到按钮上时的小提示,jb2同这个一样
jb1.setToolTipText("点击登录");
//这是我自己弄的一个鼠标事件,当点击jb1是所会发生的事情以及程序会如何应对
jb1.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent mouseEvent) {
JFrame j=new JFrame("qq");
ImageIcon i=new ImageIcon("src=http___nimg.ws.126.net__url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0605%2F766ef3d9p00qu7fg5001bd000v900hcp.png&thumbnail=650x2147483647&quality=80&type=jpg&refer=http___nimg.ws.126.jpg");
j.setIconImage(i.getImage());
j.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
j.setVisible(true);
j.setResizable(false);
j.setLocation(400,400);
j.setSize(400,300);
}
@Override
public void mousePressed(MouseEvent mouseEvent) {
}
@Override
public void mouseReleased(MouseEvent mouseEvent) {
}
@Override
public void mouseEntered(MouseEvent mouseEvent) {
}
@Override
public void mouseExited(MouseEvent mouseEvent) {
}
});
jb2.setToolTipText("点击退出");
//当点击jb2时直接退出窗体
jb2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
dispose();
System.exit(0);
}
});
}
}
以上就是我敲的全代码了,emm,,,还有很多不完善的,我需要成长(需要大家指点指点),如果有看不懂的也可以和我交流一下,或者找一下度娘,嘿嘿