今天是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组件开发的cs结构软件
1.SSQ.jar可直接执行程序 2.src里面包含源代码 3.kj.txt为开奖数据 4.01.txt为01开头数据 5.icon里放的是图片 6.请把这些放在同一目录下运行
一个基于代码讲解的java swing教程。本教程比较初步,只介绍了常用的组件与功能,适合初学者。教程以代码注释的形式讲解各功能和模块
Java编程实训 Java开发基础入门教程1-11 JAVA UI swing编程基础(共39页).ppt Java编程实训 Java开发基础入门教程1-12 AWT布局管理器(共14页).ppt Java编程实训 Java开发基础入门教程1-13 AWT事件处理模型(共29...
初步掌握JAVA的界面设计。 2【实验内容】 1. 编写一个类,可以判断一年是否是闰年。 2. 编写一个类,可以输出2个整数的全部公约数。 3.某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装...
初步掌握JAVA的继承和接口。 2【实验内容】 1.实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty和Staff。具体要求如下: (1)Person类中的属性有:姓名name(String类型),地址address...
本系统可以用于新手对于java项目初步的一个了解,并且能很好的帮助理解swing的学习
JAVA2 GUI DESIGN, 分为两卷(1AWT 2SWING) 初步看了下,还不错。格式可能有点杂,不过很清晰。 CHM和HTML格式 中文版,其中包括GUI设计的禁忌的文章
适用于java初学者入门学习,帮助理解java的GUI布局方法!
适合新手初步学习数据库系统
能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...
对于一个教室的预订系统,首先需要的是一系列的教室数据,对于教室的数据,我们做了一些构想,初步把数据分成了一下一些类型:① 教室的楼层,位置:教室的所处楼层以及在该楼层所处的方位。② 教室的设备情况:...
能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...
能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...
能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...
能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...
能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...
能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...
能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...