`
空城旧梦why
  • 浏览: 24829 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Java Swing初步(二)

    博客分类:
  • Java
阅读更多

        今天是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);
	}

}

 下面是我的运行的效果,我自己感觉还行吐舌头吐舌头吐舌头

 

  • 大小: 146 KB
2
0
分享到:
评论
5 楼 lliiqiang 2014-07-16  
标准可以变化
4 楼 lliiqiang 2014-07-16  
怎么把图片放上去的?不能完全做到也不代表可以没有进展
3 楼 lliiqiang 2014-07-08  
实现了功能,还有特殊情况扩展性,知道很多事情
2 楼 空城旧梦why 2014-04-10  
嗯嗯,我现在先把Java的基础打好,然后转向android
1 楼 PpOo 2014-04-09  
看到你写的swing让我想起当年的自己 痴迷于swing 但这个技术基本已被废弃 建议楼主放弃吧不要浪费时间 如果真喜欢java做的界面,去做android吧 这些东西在工作中是用不到的 至少我们这边是

相关推荐

    使用Java Swing实现了抖音上的表白程序

    最后,作者想说的是,1.9块钱的资源,你买不了吃亏,买不了上当,只需省一片绿箭口香糖的钱,你就能拥有一个用于整蛊的Java Swing实现,你在玩的过程中,还可以初步了解一些Java Swing的知识,如此说来,少年,抓紧时间下载吧。

    CarManage.rar_java swing CS

    初步实现对车辆的增删改查等以及各个说明主要是用java swing组件开发的cs结构软件

    javaSwing双色球软件设计思路及初步源码

    1.SSQ.jar可直接执行程序 2.src里面包含源代码 3.kj.txt为开奖数据 4.01.txt为01开头数据 5.icon里放的是图片 6.请把这些放在同一目录下运行

    Java swing 教程

    一个基于代码讲解的java swing教程。本教程比较初步,只介绍了常用的组件与功能,适合初学者。教程以代码注释的形式讲解各功能和模块

    Java编程实训 Java开发基础入门教程1-11 JAVA UI swing编程基础(共39页).ppt

    Java编程实训 Java开发基础入门教程1-11 JAVA UI swing编程基础(共39页).ppt Java编程实训 Java开发基础入门教程1-12 AWT布局管理器(共14页).ppt Java编程实训 Java开发基础入门教程1-13 AWT事件处理模型(共29...

    Java Swing图形用户界面设计(I)

    初步掌握JAVA的界面设计。 2【实验内容】 1. 编写一个类,可以判断一年是否是闰年。 2. 编写一个类,可以输出2个整数的全部公约数。 3.某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装...

    Java Swing图形用户界面设计(II)

    初步掌握JAVA的继承和接口。 2【实验内容】 1.实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty和Staff。具体要求如下: (1)Person类中的属性有:姓名name(String类型),地址address...

    java+Swing+学生事务管理系统

    本系统可以用于新手对于java项目初步的一个了解,并且能很好的帮助理解swing的学习

    JAVA2 图形设计(AWT,SWING)

    JAVA2 GUI DESIGN, 分为两卷(1AWT 2SWING) 初步看了下,还不错。格式可能有点杂,不过很清晰。 CHM和HTML格式 中文版,其中包括GUI设计的禁忌的文章

    java编写的计算器(初步理解GUI布局)

    适用于java初学者入门学习,帮助理解java的GUI布局方法!

    简易商城系统,MySQL+eclipse (运用Java swing框架)

    适合新手初步学习数据库系统

    Java开发超级玛丽游戏

    能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...

    基于Java swing带GUI界面的教室预定系统(源码+设计说明+ppt).zip

    对于一个教室的预订系统,首先需要的是一系列的教室数据,对于教室的数据,我们做了一些构想,初步把数据分成了一下一些类型:① 教室的楼层,位置:教室的所处楼层以及在该楼层所处的方位。② 教室的设备情况:...

    Java开发贪吃蛇游戏.rar

    能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...

    Java开发扫雷游戏.rar

    能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...

    Java开发推箱子游戏.rar

    能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...

    Java开发飞机大战游戏.rar

    能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...

    Java开发黄金矿工游戏.rar

    能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...

    Java开发俄罗斯方块小游戏.rar

    能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...

    Java开发飞翔的小鸟游戏.rar

    能学到什么:基于Java Swing技术的桌面应用开发技术。 适合人群:Java初学者、对Swing技术感兴趣的Java开发人员、准备毕业设计的大学生 阅读建议:资源包含了游戏的完整代码,按照开发步骤划分。也可以跟着教学视频...

Global site tag (gtag.js) - Google Analytics