java山寨qq_java图形界面之 山寨QQ登陆界面

java山寨qq_java图形界面之 山寨QQ登陆界面要山寨出登陆界面 首先要对 java 的图形界面有一定的了解 在 jdk1 4 之前 图形界面所用到的所有类和接口都在 javax awt 之下 在其之后就都在 javax swing 里了 关于图形界面的开发其实就类似于搭积木的过程 我们把所需要的控件一个一个的摆放到窗口里面我们所需要的位置 一个图形界面就算基本完成了 下面我们就拿的登陆界面做一个示范 首先我们先了解一下图形界面中所用到的一些基本的控件

要山寨出登陆界面,首先要对java的图形界面有一定的了解。在jdk1.4之前,图形界面所用到的所有类和接口都在javax.awt之下,在其之后就都在javax.swing里了。

关于图形界面的开发其实就类似于搭积木的过程,我们把所需要的控件一个一个的摆放到窗口里面我们所需要的位置,一个图形界面就算基本完成了。下面我们就拿的登陆界面做一个示范。

首先我们先了解一下图形界面中所用到的一些基本的控件,这些都在Javax.swing内:

JFrame(JApplet)图形中的顶级容器JPanel最灵活的容器JTextField文本输入框JComboBox下拉框类JPasswordField密码输入框JCheckBox复选框,多选框JLabel标签JButton按钮

其次就是布局方式,这关系到我们怎么样把积木摆放到我们想要的位置:

BorderLayout边框布局将容器分为上北下南左西右东中间FlowLayout流式布局类似word文档null空布局,绝对布局控件必须要指定起始坐标和宽度高度

下面我们就来看下实现界面开发的步骤

1.定义一个Frame,让该类继承自JFrame。2.在Frame类中定义主函数和初始化界面的方法。3.在主函数中实例化Frame类的对象,调用初始化界面的方法。4.在初始化界面的方法中,设置窗体的属性值(标题,大小,位置,大小调整,布局,关闭,可见,…)5.设置窗体的背景图(单独定义方法进行设置),这里我们会用到添加图片的方法6.创建容器或者元素控件添加到JFrame上。1.创建北边区域的方法,设置标签2.创建西边区域的方法,创建容器,添加标签显示图片3.创建中间区域的方法,创建容器,添加账号,密码,标签,复选框控件4.创建南边区域的方法,创建容器,添加按钮,标签控件。

7. 5.在主函数中实例化Frame类的对象,调用初始化界面的方法。

下面就在代码中说说我所遇到的问题,也请大家留意这些问题不要再犯

//初始化界面方法

public void initUI(){

//标题大小显示位置布局方式。。。

this.setTitle(“Frame”);

this.setSize(371,290);

this.setLocationRelativeTo(null);//让窗口显示位置居屏幕中间

this.setResizable(false);//不可随意调整大小

this.setLayout(new BorderLayout());//设置布局方式尤其要注意默认的布局方式就是框架布局所以这行代码写不写无所谓

this.setDefaultCloseOperation(3);//关闭窗体时退出程序

this.setUndecorated(true);//去掉窗口外面的边框但这时没有了关闭按钮,所以我们还得在界面上添加按钮,点击后可以关闭界面,关闭界面的代码很简单System.exit(0);就是这一行。

//调用添加窗体背景图的方法

addBackGround();

//由于我们采用框架布局,将界面分为东西南北中五块这里是调用添加窗口各个区域的方法

creatNorth();

creatWest();

creatCenter();

creatSouth();

//设置窗口可见

这里要注意的是添加组件时一定要先添加最后再可视,如果先可视再添加,那么很有可能我们看不到添加的组件了。

this.setVisible(true);

}

//有时候我们会想用自己的图片来充当界面的北京下面就介绍添加背景的方法

private void addBackGround(){

我们可能会想将自己的照片设置为窗口背景,那这要怎么样做呢我们需要用到ImageIcon类帮助我们实现

//使用imageicon加载图片但是这样无法直接显示在窗口上

ImageIcon image=new ImageIcon(this.getClass().getResource(“haha.JPG”));//得到类得到路径,图片的格式没有要求,

//创建jlabel对象显示图片

JLabel j=new JLabel(image);

//设置标签的显示起始位置和标签限时的宽度高度

j.setBounds(0,0,image.getIconWidth(),image.getIconHeight());

//将j添加到jlayeredpane的Default层上,Default层是最底下的一层,我们在后面给的值是MIN_VALUE最小的值,就是将标签加到了面板的最底层,这里我们必须要加在最底层上,否则显示不出来。

this.getLayeredPane().add(j,new Integer(Integer.MIN_VALUE));

//获取窗体的内容面板对象强制转换成JPanel对象这样我们就取到了LayeredPane面板上一层的ContentPane面板

JPanel contentPane=(JPanel)this.getContentPane();

//将内容面板设置为透明我们才可以看到我们想要的图片

contentPane.setOpaque(false);

}

下面我们以西边区域为例,讲一下每个区域的添加控件的方法

//创建西边区域

private void creatWest(){

//创建一个容器,我们要添加的所有组件都应是放在这个容器里的

JPanel jp=new JPanel();

//设置容器大小,只有窗口的大小要用setSize方法,其余的一律要用这种,因为西边区域的高度是窗口高度减去北边还有南边的高度之和,所以西边区域的高度是被动确定的,在这里些什么数字都无所谓,我们在这里写0。延伸一下,中间区域就是东西南北四个区域设置完剩下的部分,所以中间区域就不用设置大小了。

jp.setPreferredSize(new Dimension(110,0));

//设置容器布局为流式靠右布局

jp.setLayout(new FlowLayout(FlowLayout.RIGHT));

//加载图片

ImageIcon im=new ImageIcon(this.getClass().getResource(“real.jpg”));

//创建标签对象

JLabel j=new JLabel(im);

//将标签加入面板中并设置面板为透明

jp.add(j);

jp.setOpaque(false);

//将面板加到西边

this.add(jp,BorderLayout.WEST);

}

其余的区域都和西边和中间区域的添加方法一致,界面的所有代码我都放在了附件中,如果有兴趣大家可以看看,当然界面做的还是比较粗糙,不过里面所有的功能都已经实现,比如说链接网页,拖动窗口。后期我还要对界面进行美化。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213789.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午5:38
下一篇 2026年3月18日 下午5:39


相关推荐

  • java实现MD5加密的三种方式「建议收藏」

    java实现MD5加密的三种方式「建议收藏」方法一:推荐使用所需jar包:commons-codec.jarimportorg.apache.commons.codec.digest.DigestUtils;/***MD5加密之方法一*@explain借助apache工具类DigestUtils实现*@paramstr*待加密字符串*@return16进制加密字符串*/publicstaticStringencryptToMD5(Stringstr){ return

    2022年7月8日
    36
  • 水流量霍尔传感器工作原理_51单片机温度传感器

    水流量霍尔传感器工作原理_51单片机温度传感器硬件准备(1)YF-B1流量传感器一个(2)51开发板一个基础知识(1)YF-B1流量传感器只有三根线。即数据线、VCC、GND。数据线输出为占空比为50%的方波。当水流通过水流转子组件时,磁性转子转动并且转速随着流量的变化而成线性变化。霍尔传感器(霍尔元件采样)输出相应的脉冲信号。其流量脉冲特性计算公式为:脉冲f(Hz)=8.1x流量Q(L/min)-3。(2)51单片机的中断…

    2026年4月18日
    5
  • 3、JSON处理( n8n 节点用于交换信息的语言)

    3、JSON处理( n8n 节点用于交换信息的语言)

    2026年3月13日
    2
  • webpack基础打包命令_webpack打包命令

    webpack基础打包命令_webpack打包命令没有配置文件的打包如果我们没有使用配置文件webpack.config.js,那么我们就需要通过命令来打包案例我们首先创建一个webpackTest文件夹,然后在文件夹中再创建2个子文件夹dis

    2022年7月30日
    7
  • 获取UUID_js获取用户唯一标识

    获取UUID_js获取用户唯一标识需求:​ 很多时候我们会需要用到生成不重复的唯一标识的的功能,如数据库表中的主键等。实现:​ 使用UUID生成唯一、不重复的字符串。importjava.util.UUID;publicclassUUIDUtils{publicstaticStringgetUUID(){returnUUID.randomUUID().toString().replace(“-“,””);}}什么是UUID:​ UUID通用唯一识别码

    2022年8月10日
    80
  • WinRAR去广告方法,了解一下?[通俗易懂]

    WinRAR去广告方法,了解一下?[通俗易懂]经常看到有些人电脑上安装的WinRAR中文版,打开压缩包的时候总是弹出广告,然后又习惯性的点了关闭;作为一名计算机专业的小白,我就忍不了了,找啊找~终于让我找到了去广告的方法233~~~需要用的工具:WinRAR中文版Restorator2007step1:下载安装winRAR,用WinRAR打开一个压缩包确认是否弹广告。(不弹广告就可以走了,没必要看哈哈;有广告接着往下看!…

    2022年6月9日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号