今天是swing界面学习的第二节课,在第一节的基础上对swing的各个组件进行了深入的了解,并且把上次的那个QQ登陆界面进行了美化,直接上代码进行说明吧。
package com.why.ui; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; public class QQLogin extends JFrame { private static final long serialVersionUID = 1L; public static void main(String[] args) { // TODO Auto-generated method stub QQLogin login = new QQLogin(); login.init(); } public void init() { // 设置窗体大小 this.setSize(new Dimension(385, 300)); // 设置窗体为不可调整大小的状态 this.setResizable(false); // 设置窗体的布局 this.setLayout(new BorderLayout()); // 设置窗体的显示位置 this.setLocationRelativeTo(null); // 设置船体的标题 this.setTitle("QQ"); // 设置窗体的关闭按钮点击后的响应方式 this.setDefaultCloseOperation(3); //为了设置背景图片并且显示出来不被遮住所以不得不设置JFrame的内容窗格设置为透明 ((JPanel) this.getContentPane()).setOpaque(false); //实例化JLabel对象用于显示背景图片 ImageIcon bg = new ImageIcon("res/bg.jpg"); JLabel label = new JLabel(bg); //添加背景图片标签 this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE)); //设置背景标签的位置 label.setBounds(0, 0, 382, 275); // 调用显示北边的方法,用于初始化北边要显示的组件 createNorth(); // 调用显示南边的方法,用于初始化北边要显示的组件 createSouth(); // 调用显示西边的方法,用于初始化北边要显示的组件 createWest(); // 调用显示中间的方法,用于初始化北边要显示的组件 createCenter(); // 设置窗体为可见状态 this.setVisible(true); } // 定义初始化北边的方法,对北边的组件初始化 private void createNorth() { //添加这个标签不让中间的组件跑到最上面来 JLabel label = new JLabel(); label.setPreferredSize(new Dimension(378, 120)); label.setOpaque(false); this.add(label, BorderLayout.NORTH); } // 定义初始化南边的方法,对南边的组件初始化 private void createSouth() { JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER)); panel.setOpaque(false); // 添加多账号登陆图片 ImageIcon icon = new ImageIcon("res/a.jpg"); JLabel labelM = new JLabel(icon); panel.add(labelM); //因为使用的是流式布局所以添加的组件必定会挨在一起所以添加这个以达到不让组件挨着的目的 JLabel jl1 = new JLabel(); jl1.setPreferredSize(new Dimension(65, 30)); panel.add(jl1); // 添加登陆按钮 JButton login = new JButton("登陆"); login.setPreferredSize(new Dimension(156, 35)); panel.add(login); //因为使用的是流式布局所以添加的组件必定会挨在一起所以添加这个以达到不让组件挨着的目的 JLabel jl2 = new JLabel(); jl2.setPreferredSize(new Dimension(55, 30)); panel.add(jl2); // 添加二维码登陆图片 ImageIcon image = new ImageIcon("res/b.jpg"); JLabel label = new JLabel(image); panel.add(label); this.add(panel, BorderLayout.SOUTH); } // 定义初始化西边的方法,对西边的组件初始化 private void createWest() { // 实例化一个JPanel容器用于放置头像图片 JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); panel.setOpaque(false); // 实例化一个ImageIcon对象用于实例化一个JLabel对象放置头像图片 ImageIcon icon = new ImageIcon("res/head.jpg"); JLabel label = new JLabel(icon); panel.add(label); // 设置panel的大小 panel.setPreferredSize(new Dimension(100, 0)); this.add(panel, BorderLayout.WEST); } // 定义初始化中间的方法,对中间的组件初始化 private void createCenter() { // 实例化一个JPanel容器用于放置中间要显示的元素组件 JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 5)); panel.setOpaque(false); // 定义JChomboBox所需的下拉列表的内容 String[] name = new String[] { "1378681713", "1238921432", "3382953294", "4853243489" }; JComboBox<String> username = new JComboBox<String>(name); // 设置用户名输入框的大小 username.setPreferredSize(new Dimension(187, 25)); // 设置JComboBox为可编辑状态 username.setEditable(true); panel.add(username); // 添加注册密码文本 JLabel labelReg = new JLabel("注册账号"); //设置文字的颜色 labelReg.setForeground(Color.BLUE); panel.add(labelReg); // 添加密码输入框 JPasswordField password = new JPasswordField(); password.setPreferredSize(new Dimension(187, 25)); panel.add(password); // 添加找回密码文本 JLabel labelFindpwd = new JLabel("找回密码"); //设置文字的颜色 labelFindpwd.setForeground(Color.BLUE); panel.add(labelFindpwd); // 添加记住密码复选框 JCheckBox remPwd = new JCheckBox("记住密码"); //设置文字的颜色 remPwd.setForeground(Color.BLUE); //设置该组件透明不让其遮住背景图片 remPwd.setOpaque(false); panel.add(remPwd); // 添加自动登陆复选框 JCheckBox autoLogin = new JCheckBox("自动登陆"); //设置文字的颜色 autoLogin.setForeground(Color.BLUE); //设置该组件透明不让其遮住背景图片 autoLogin.setOpaque(false); panel.add(autoLogin); this.add(panel, BorderLayout.CENTER); } }
下面是我的运行的效果,我自己感觉还行
相关推荐
最后,作者想说的是,1.9块钱的资源,你买不了吃亏,买不了上当,只需省一片绿箭口香糖的钱,你就能拥有一个用于整蛊的Java Swing实现,你在玩的过程中,还可以初步了解一些Java Swing的知识,如此说来,少年,抓紧时间下载吧。
《基于Java Swing的服装销售系统详解》 在IT领域,开发用户友好的应用程序是至关重要的。对于初学者来说,理解并应用面向对象编程思想、掌握GUI(图形用户界面)设计以及数据库管理是基础技能的基石。本文将深入...
Java Swing DVD租赁系统是一个基于Java Swing图形用户界面(GUI)技术构建的应用程序,它主要用于管理DVD的出租业务。Swing是Java的一个库,用于创建桌面应用程序,提供了丰富的组件集,如按钮、文本框、菜单等,使...
Java Swing组件写的游戏客户端 Java Swing是Java标准库中的一个图形用户界面(GUI)工具包,用于构建桌面应用程序。在这个特定的项目中,"Java Swing组件写的游戏客户端" 暗示了一个基于Java Swing开发的游戏客户端...
Java Swing 是Java GUI(图形用户界面)开发的一个重要框架,它是Java Foundation Classes (JFC) 的一部分,提供了丰富的组件库来构建桌面应用。本项目是一个基于Java Swing开发的双色球彩票软件,让我们来深入探讨...
Java Swing计算器是一个基于Java GUI库Swing开发的桌面应用程序,用于执行基本和科学计算操作。Swing是Java标准版(Java SE)的一部分,提供了一套丰富的组件和工具,用于创建美观且功能丰富的用户界面。本项目实现...
标题中的“自己用Java Swing开发的一个...提供的源码可供学习者了解如何使用Java和Swing创建桌面应用,以及如何初步处理图像。由于代码的开源性质,开发者和学习者可以在此基础上添加自己的图像处理算法,扩展其功能。
本实验旨在让学生初步掌握使用Java Swing进行界面设计的基本技巧。 在实验内容中,包含了以下几个部分: 1. **闰年判断**: 通过输入一个年份,程序会判断该年份是否为闰年。闰年的判断条件是:能被4整除但不能被...
在课程设计或毕业设计中,这样的项目有助于学生巩固Java编程基础,学习GUI设计,理解面向对象编程,以及初步涉猎游戏开发和人工智能。对于初学者来说,通过阅读和分析源代码,可以提升问题解决能力,了解实际项目...
在"java图形初步建立"中,我们可能会从创建一个简单的`MyFrame`类开始,这个类继承自`javax.swing.JFrame`。`JFrame`是Swing中的主要窗口类,可以承载其他组件。以下是一个基础的`MyFrame`类示例: ```java import ...
在这个特定的案例中,"Java 写的斗兽棋" 是一个初学者用Java实现的小游戏,这表明你正在探索Java的基础和游戏开发的初步概念。 斗兽棋,又称兽棋,是一种两人对弈的策略棋类游戏,其规则相对简单,但包含了基础的...
在本文中,我们将深入探讨如何使用Java编程语言和Swing GUI库来实现一个功能丰富的计算器,包括基础的计算功能以及保存计算过程的能力。这个项目旨在提高开发者对Java面向对象编程的理解,以及对Swing组件的运用技巧...
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于...
《基于Java Swing的游戏开发——FrogHop解析》 在Java编程世界中,Swing库是用于构建图形用户界面(GUI)的重要工具。本项目“FrogHop”是一个使用Java Swing开发的简单游戏,其灵感来源于经典游戏Frogger。本文将...
Swing是Java的一个库,提供了丰富的组件用于构建桌面应用程序的用户界面。 实验要求创建一个简单的计算器,这涉及到以下几个关键知识点: 1. **Swing组件**:实验中用到了`JFrame`作为主窗口,`JPanel`作为容器,`...
初步掌握JAVA的继承和接口。 2【实验内容】 1.实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty和Staff。具体要求如下: (1)Person类中的属性有:姓名name(String类型),地址address...
- 学习 Java 标准库中的 Swing 或 JavaFX 进行图形用户界面(GUI)开发。 14. **实践项目**: - 通过编写小型项目来巩固所学知识,如简单的计算器、文件管理系统等。 总之,Java 初步学习需要逐步深入,从基础...
2. **图形绘制**:学习使用Java的AWT或Swing库进行基本的图形绘制,或者使用更专业的游戏库如LWJGL。 3. **事件处理**:理解键盘、鼠标等输入事件的监听和响应机制。 4. **碰撞检测**:学习如何检测游戏对象间的碰撞...
Java游戏编程初步是一个适合初学者入门的专题,旨在引导学习者掌握使用Java语言进行游戏开发的基本概念和技术。在Java这个强大的编程平台上,游戏编程提供了一种有趣的实践方式,让开发者可以充分发挥自己的创造力和...
【华育国际java初步课间及课上练习】是一份针对初学者的Java编程学习资料,主要涵盖了J2SE(Java Standard Edition)的基础知识和实际编程练习。这份资源结合了华育国际教育机构的课堂讲解内容和教师编写的程序实例...