`
lazyee
  • 浏览: 15490 次
社区版块
存档分类
最新评论

QQ界面和计算器界面

    博客分类:
  • java
阅读更多
在前面简单登录界面实现的基础上更进一步,尝试实现QQ登录界面。
首先打开新版QQ的登陆界面,可以发现它有着典型的边框布局特点。一整块的背景,我们暂时不能实现,可当成是北边的部分;西边是我们的头像显示;中央为账号密码输入框及两个复选框;南边是一个登录按钮。
由于目前水平有限,暂时采取截图的方法实现,尽量与QQ保持一致。
北边与西边类似,可用一个JLabel对象来显示一张图片,但是在这之前要先实例化一个ImageIcon对象(ImageIcon类可以实现一些有关图像的操作)。例如:
//实例化一个ImageIcon对象
ImageIcon image = new ImageIcon(“图片在工程包下的路径”);
//实例化一个标签对象,用来显示图片
JLabel jb = new JLable(image);
//调整标签大小
jb.setPreferredSize(new  java.awt.Dimension(宽,高));
//将标签放置在窗体北边
jf.add(jb,BorderLayout.NORTH);
中央部分与之前简单登录界面差不多,只需添加两种对象:下拉框和复选框。
南边,为了保证按钮位置及大小固定,最好实例化一个面板对象,将按钮放置在面板中。
具体代码如下:
package practise;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.ImageIcon;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;

public class LoginTwo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// 实例化Login类的对象l
		LoginTwo lg = new LoginTwo();
		//调用显示窗体界面的方法
		lg.initUI();
	}
	//显示窗体界面的方法
	public void initUI(){
		//实例化一个JFrame窗体对象
		javax.swing.JFrame jf = new javax.swing.JFrame();
		//设置窗体标题
		jf.setTitle("简单登录界面");
		//设置窗体居中显示
		jf.setLocationRelativeTo(null);
		//设置窗口大小
		jf.setSize(370,280);
			
		//设置边框布局
		java.awt.BorderLayout bl = new java.awt.BorderLayout();
		jf.setLayout(bl);
		
		/***************************北边**************************/
		//实例化一个ImageIcon的对象
		ImageIcon image = new ImageIcon("images/qq.jpg");
		//实例化一个标签对象,用来显示一个图标
		JLabel lbImage = new JLabel(image);
		lbImage.setPreferredSize(new java.awt.Dimension(370,110));
		//将标签设置显示在窗体北边
		jf.add(lbImage,BorderLayout.NORTH);
		/***************************北边**************************/
		
		/***************************西边**************************/
		//实例化一个ImageIcon的对象
		javax.swing.ImageIcon image2 = new javax.swing.ImageIcon("images/q.jpg");
		//实例化一个标签对象,用来显示一个图标
		javax.swing.JLabel lbImage2 = new javax.swing.JLabel(image2);
		//调整标签大小
		lbImage2.setPreferredSize(new java.awt.Dimension(100,80));
		//将标签设置显示在窗体北边
		jf.add(lbImage2,BorderLayout.WEST);
		/***************************西边**************************/
		
		/***************************中央**************************/
		//实例化一个面板容器
		JPanel panel = new JPanel();
		//实例化一个流体布局对象,放在面板中间
		FlowLayout fl = new java.awt.FlowLayout(FlowLayout.LEFT);
		//设置窗体的布局方式
		panel.setLayout(fl);
			
		
		//实例化账号下拉框对象
		JComboBox jcb = new JComboBox();
		//设置下拉框大小
		jcb.setPreferredSize(new Dimension(190,25));
		//设置下拉框可编辑
		jcb.setEditable(true);
		//添加jcb到面板
		panel.add(jcb);
		//实例化标签对象
		JLabel jlOne = new JLabel("注册账号");
		//将对象添加到窗体上
		panel.add(jlOne);
		
		//实例化密码输入框
		JPasswordField pwf = new JPasswordField();
		//设置密码输入框大小
		pwf.setPreferredSize(new Dimension(190,25));
		panel.add(pwf);
		//实例化密码标签
		JLabel jlTwo = new JLabel("忘记密码");
		panel.add(jlTwo);
		
		//实例化一个复选框
		JCheckBox check= new JCheckBox("记住密码");
		panel.add(check);
		JCheckBox check2= new JCheckBox("自动登录");
		panel.add(check2);
		
		//将panel对象放在窗体中央
		jf.add(panel,BorderLayout.CENTER);
		/***************************中央**************************/
		
		/***************************南边**************************/
		//实例化一个面板容器
		JPanel panel2 = new JPanel();
		//实例化一个流体布局对象,放在面板中间
		FlowLayout fl2 = new java.awt.FlowLayout(FlowLayout.CENTER);
		//设置窗体的布局方式
		panel2.setLayout(fl2);
		panel2.setPreferredSize(new java.awt.Dimension(0,42));
		
		//实例化一个ImageIcon的对象
		ImageIcon image3 = new ImageIcon("images/login.jpg");
		//实例化一个按钮,用来显示一个图标
		javax.swing.JButton jb = new javax.swing.JButton(image3);
		jb.setPreferredSize(new java.awt.Dimension(177,31));
		//将按钮添加到panel2面板上
		panel2.add(jb);
		
		//将panel2对象放在窗体南边
		jf.add(panel2,BorderLayout.SOUTH);
		
		/***************************南边**************************/
		//设置窗体可见
		jf.setVisible(true);				
	}
}
程序运行结果为:


接下来来实现计算器界面(以XP系统为例):
XP系统中的计算器如下图:


从上图中,我们可以看到第一行按钮的大小与其他按钮不同,第一列按钮与其他按钮间的间距不同。由此,自然可以想到边框布局。北边放置结果显示框;西边放置下陷按钮和第一列按钮;中央放置其他按钮,并用条件语句判断其是否为第一行的按钮。
具体代码如下:
package practise;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Calculator {

	/**
	 * 程序的入口主函数
	 */
	public static void main(String[] args) {
		// 实例化一个Calculator类的对象
		Calculator cl =new Calculator();
		//调用计算器界面
		cl.show();
	}
	
	//定义显示计算器界面方法
	public void show(){
		//实例化一个JFrame窗体对象
		JFrame jf = new JFrame();
		jf.setTitle("计算器");//设置标题
		jf.setSize(260,245);//设置窗体大小
		jf.setDefaultCloseOperation(3);//关闭时退出程序
		jf.setLocationRelativeTo(null);//设置窗体位于屏幕中央
		jf.setResizable(false);//禁止用户修改大小
		
		//实例化一个边框布局
		BorderLayout bl = new BorderLayout();
		jf.setLayout(bl);
		
		/**************************北边输入框******************************/
		//实例化一个面板
		JPanel jp = new JPanel();
		//实例化一个流式布局
		FlowLayout fl = new FlowLayout(FlowLayout.CENTER);
		jp.setLayout(fl);
		//实例化一个文本输入框
		JTextField tf = new JTextField();
		tf.setPreferredSize(new Dimension(239,21));
		//将tf对象添加到面板上
		jp.add(tf);
		//将jp面板添加到窗体北边
		jf.add(jp,BorderLayout.NORTH);
		/**************************北边输入框******************************/
		
		/**************************西边输入框******************************/
		//实例化二面板
		JPanel jp2 = new JPanel();
		//实例化一个流式布局
		FlowLayout fl2 = new FlowLayout(FlowLayout.LEFT);
		jp2.setLayout(fl2);
		//设置jp2大小
		jp2.setPreferredSize(new Dimension(45,0));
		
		//实例化一个按钮,用来显示一个下陷图标
		javax.swing.JButton jb2 = new javax.swing.JButton();
		jb2.setPreferredSize(new java.awt.Dimension(27,24));
		jb2.setEnabled(false);
		jp2.add(jb2);
		
		//定义一个字符串数组,用来存放西边按钮图片路径
		String[] path={"images/Calculator/mc.jpg","images/Calculator/mr.jpg",
						"images/Calculator/ms.jpg","images/Calculator/m+.jpg"};
		//遍历数组,创建按钮对象
		for (int i=0;i<path.length;i++){
			//实例化一个ImageIcon对象
			ImageIcon icon = new ImageIcon(path[i]);
			//实例化一个按钮
			JButton jb = new JButton(icon);
			//设置按钮大小
			jb.setPreferredSize(new Dimension(36,27));
			//将按钮添加到二面板上
			jp2.add(jb);
		}
		//将面板添加到窗体西边
		jf.add(jp2,BorderLayout.WEST);
		/**************************西边输入框******************************/
		
		/**************************中央输入框******************************/
		//实例化三面板
		JPanel jp3 = new JPanel();
		jp3.setLayout(new FlowLayout());
		

		//定义一个字符串数组,用来存放西边按钮图片路径
		String[] path2={"images/Calculator/bs.jpg",
				"images/Calculator/ce.jpg","images/Calculator/c.jpg",
				"images/Calculator/7.jpg","images/Calculator/8.jpg",
				"images/Calculator/9.jpg","images/Calculator/chu.jpg",
				"images/Calculator/sqrt.jpg","images/Calculator/4.jpg",
				"images/Calculator/5.jpg","images/Calculator/6.jpg",
				"images/Calculator/chen.jpg","images/Calculator/qu.jpg",
				"images/Calculator/1.jpg","images/Calculator/2.jpg",
				"images/Calculator/3.jpg","images/Calculator/-.jpg",
				"images/Calculator/1x.jpg","images/Calculator/0.jpg",
				"images/Calculator/+-.jpg","images/Calculator/d.jpg",
				"images/Calculator/+.jpg","images/Calculator/=.jpg"};
		//遍历数组,创建按钮对象
		for (int i=0;i<path2.length;i++){
			//实例化一个ImageIcon对象
			ImageIcon icon = new ImageIcon(path2[i]);
			//实例化一个按钮
			JButton jb = new JButton(icon);
			if (path2[i].equals("images/Calculator/bs.jpg")){
				jb.setPreferredSize(new Dimension(63,27));
			}else if(path2[i].equals("images/Calculator/ce.jpg")){
				jb.setPreferredSize(new Dimension(62,27));
			}else if(path2[i].equals("images/Calculator/c.jpg")){
				jb.setPreferredSize(new Dimension(62,27));
			}else{
				//设置按钮大小
				jb.setPreferredSize(new Dimension(36,27));
			}
			//将按钮添加到二面板上
			jp3.add(jb);
		}
		//将面板添加到窗体中央
		jf.add(jp3,BorderLayout.CENTER);
		/**************************中央输入框******************************/
		jf.setVisible(true);
	}
}
程序运行结果为:


注意:要添加的按钮数较多,若一个个地添加必然费时费力。因此,在这里采用数组来存储图片路径,然后在进行遍历的方法。
equals()方法用来比较内容。
  • 大小: 30 KB
  • 大小: 11.7 KB
  • 大小: 19.8 KB
  • 大小: 18.1 KB
分享到:
评论

相关推荐

    QT计算器界面和计算器功能实现

    QT计算器界面和计算器功能实现是基于QT框架进行的软件开发项目。QT是一个开源的C++图形用户界面应用程序开发框架,它提供了丰富的库和工具,帮助开发者构建跨平台的应用程序,包括桌面、移动和嵌入式设备。在这个...

    java实现的计算器(界面程序)

    这样,即使在调整窗口大小时,组件也能保持相对位置,从而确保计算器界面的美观性。 在实际代码实现中,首先会创建一个JFrame作为主窗口,然后添加JPanel到JFrame中,并设置这个JPanel的布局为GridBagLayout。接着...

    QT例程,有QQ界面,计算器,学生管理系统,秒表,打地鼠,包含源码和exe程序

    QT例程是一个集合,其中包括了多个使用QT框架开发的应用程序示例,如QQ界面、计算器、学生管理系统、秒表和打地鼠游戏。QT是一个跨平台的C++库,广泛用于开发图形用户界面(GUI)应用程序,同时也支持命令行工具和...

    易语言QQ等级计算器

    8. **源码分析**:易语言QQ等级计算器的源码包含了整个软件的逻辑和实现细节,通过分析源码,可以学习到如何使用易语言进行条件判断、循环、数据处理以及图形界面设计等编程技能。 9. **图形用户界面**:计算器软件...

    带界面的计算器(改正版)

    数据结构课程设计写的计算器,带界面,具有报错功能,可以进行加减乘除括号混合运算,与或非逻辑运算。开发环境vs2017。上传为整个计算器设计工程的压缩包,可以用vs2017打开(上传的另外一个计算器有点问题,可是撤...

    图形化界面的计算器(带括号运算)

    在本计算器应用中,开发者会创建一个JFrame实例,设置其大小、位置和可见性,并在其上添加其他组件,如按钮和文本框,以构成计算器的界面。 在计算器的实现中,`JButton`用于表示数字和运算符,用户点击按钮后,...

    QQ等级计算器.rar

    QQ等级计算器是一款基于中国流行的即时通讯软件QQ设计的工具,用于计算用户QQ...通过学习和理解以上知识点,开发者可以创建出一个功能完善的QQ等级计算器。易语言的易用性使得初学者也能快速上手,实现自己的编程项目。

    C#计算器,界面很美观

    这里我们关注的是一个使用C#实现的计算器,它不仅具备基本的计算功能,还具有美观的界面,并且在实际评估中得到了满分,这无疑体现了其高质量和实用性。 首先,C#是一种由微软开发的面向对象的编程语言,广泛应用于...

    QQ等级计算器

    QQ,作为中国最流行的即时通讯软件之一,拥有一个独特的等级系统,根据用户在线时长和其他活动来提升等级。这款计算器旨在为用户提供一个直观的方式来了解他们的QQ等级进度,无需积分,对于编程新手来说是一个很好的...

    QQ魔卡在线计算器 v1.0-ASP源码.zip

    在这个计算器应用中,开发者可能使用了HTML来设计用户界面,如输入框和按钮,然后用ASP脚本来处理点击事件,执行计算并更新页面显示。 学习ASP源码,可以深入理解服务器端脚本的工作原理,提升Web开发技能。同时,...

    系统计算器界面,嵌入MFC程序界面

    在本文中,我们将深入探讨如何在MFC(Microsoft Foundation Classes)程序中实现系统计算器界面的嵌入。MFC是微软提供的一套C++类库,用于简化Windows应用程序开发,特别是图形用户界面(GUI)的创建。 标题“系统...

    易语言QQ等级计算器源码.7z

    易语言QQ等级计算器源码是一个基于易语言编程的项目,用于计算腾讯QQ用户的等级。易语言是中国本土开发的一种可视化、面向对象的编程语言,旨在降低编程难度,让普通人也能进行程序设计。本项目的核心目标是解析QQ...

    PB计算器编写界面和代码

    在这个"PB计算器"项目中,我们关注的是其用户界面的设计和实现代码。 用户界面是任何应用程序的重要组成部分,PB计算器的界面设计应该直观且易于操作。它可能包含数字键、运算符键、清除键以及等号键等基本元素,以...

    VB 仿QQ群皮肤计算器

    4. **Form1.frm**:这是VB中窗体的设计文件,包含计算器界面的所有控件布局和属性设置。通过查看这个文件,可以了解计算器界面的结构和各个按钮的定义。 5. **Form1.frx**:这是窗体资源文件,存储了窗体上的非代码...

    基于MATLAB-GUI的简易计算器设计.docx

    计算器界面应该简洁大方,布局合理,以提供良好的用户体验。这涉及到控件的排列和颜色搭配,以达到友好和直观的效果。在功能实现上,计算器不仅应能进行基本的数字输入和四则运算,还应包含更复杂的数学功能,如平方...

    QQ计算器(基于labview)

    QQ计算器是一款基于LabVIEW开发的计算器程序,它借鉴了腾讯QQ的登录界面设计,因此在视觉效果和用户体验上具有一定的吸引力。LabVIEW,全称Laboratory Virtual Instrument Engineering Workbench(实验室虚拟仪器...

    简单计算器的实现源代码,C#实现的winfrom界面

    在IT领域,编程是一项基本技能,而开发一个简单的计算器应用是初学者经常接触的实践项目。这个项目以C#语言实现,使用了Windows Forms...同时,这个项目也鼓励分享和学习,你可以通过作者提供的QQ联系他们,共同进步。

    易语言QQ等级计算器源码

    QQ等级计算器的用户界面可能包含输入框(让用户输入QQ号和在线天数)、按钮(触发计算操作)和标签或文本框(显示计算结果)。易语言提供了丰富的窗口部件和事件处理机制,使得开发者可以方便地构建图形用户界面。 ...

    一元稀疏多项式计算器(带界面)

    本文将深入探讨一个专为一元稀疏多项式设计的计算器,该计算器具有图形用户界面(GUI),支持加、减、乘、除操作,还能进行求导和赋值等高级功能。 首先,我们需要理解“一元稀疏多项式”的概念。一元多项式是形如 ...

Global site tag (gtag.js) - Google Analytics