- 浏览: 15545 次
最新评论
-
lazyee:
yfzsj 写道byte bytes[] = new byte ...
存储超过内存大小的数据 -
yfzsj:
byte bytes[] = new byte[(int)Ma ...
存储超过内存大小的数据 -
ifox:
看不懂。。。。我要多来几遍了,唉
哈弗曼树及哈弗曼编码简述
在前面简单登录界面实现的基础上更进一步,尝试实现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);
中央部分与之前简单登录界面差不多,只需添加两种对象:下拉框和复选框。
南边,为了保证按钮位置及大小固定,最好实例化一个面板对象,将按钮放置在面板中。
具体代码如下:
接下来来实现计算器界面(以XP系统为例):
XP系统中的计算器如下图:
从上图中,我们可以看到第一行按钮的大小与其他按钮不同,第一列按钮与其他按钮间的间距不同。由此,自然可以想到边框布局。北边放置结果显示框;西边放置下陷按钮和第一列按钮;中央放置其他按钮,并用条件语句判断其是否为第一行的按钮。
具体代码如下:
注意:要添加的按钮数较多,若一个个地添加必然费时费力。因此,在这里采用数组来存储图片路径,然后在进行遍历的方法。
equals()方法用来比较内容。
首先打开新版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()方法用来比较内容。
发表评论
-
存储超过内存大小的数据
2013-10-13 10:34 1879问题是这样的:如何存储5亿个正整数,并对这些数据进行排重。 ... -
哈弗曼树及哈弗曼编码简述
2013-08-18 17:13 1597哈弗曼树是一种特 ... -
滑杆组件的应用实例
2013-08-15 14:16 1536滑杆JSlider类是让用户能够通过滑块的滑动来改变选择值的组 ... -
简单分形(谢尔宾斯基三角形和地毯)
2013-06-25 11:05 4396对于分形,我的理解就是:由小元件组成整体,然后再用另一或相 ... -
用数组/链表实现的队列
2013-04-22 16:30 1286在之前的重绘中,用到了数组来传递数据,但是这个数组只能用于某种 ... -
事件机制与简单画板
2013-04-09 16:18 863一、事件机制 1、事件参与者 事件机制的参与者有三个:事件源 ... -
简单登陆界面的实现
2013-04-06 19:00 1492要用java实现一个简单登陆界面,首先应该来了解下java中有 ... -
类与对象
2013-03-22 00:02 7391、类与对象: ... -
类的继承,接口及抽象类
2013-03-21 23:08 838一、类的继承 1、什么 ...
相关推荐
QT计算器界面和计算器功能实现是基于QT框架进行的软件开发项目。QT是一个开源的C++图形用户界面应用程序开发框架,它提供了丰富的库和工具,帮助开发者构建跨平台的应用程序,包括桌面、移动和嵌入式设备。在这个...
这样,即使在调整窗口大小时,组件也能保持相对位置,从而确保计算器界面的美观性。 在实际代码实现中,首先会创建一个JFrame作为主窗口,然后添加JPanel到JFrame中,并设置这个JPanel的布局为GridBagLayout。接着...
QT例程是一个集合,其中包括了多个使用QT框架开发的应用程序示例,如QQ界面、计算器、学生管理系统、秒表和打地鼠游戏。QT是一个跨平台的C++库,广泛用于开发图形用户界面(GUI)应用程序,同时也支持命令行工具和...
8. **源码分析**:易语言QQ等级计算器的源码包含了整个软件的逻辑和实现细节,通过分析源码,可以学习到如何使用易语言进行条件判断、循环、数据处理以及图形界面设计等编程技能。 9. **图形用户界面**:计算器软件...
数据结构课程设计写的计算器,带界面,具有报错功能,可以进行加减乘除括号混合运算,与或非逻辑运算。开发环境vs2017。上传为整个计算器设计工程的压缩包,可以用vs2017打开(上传的另外一个计算器有点问题,可是撤...
在本计算器应用中,开发者会创建一个JFrame实例,设置其大小、位置和可见性,并在其上添加其他组件,如按钮和文本框,以构成计算器的界面。 在计算器的实现中,`JButton`用于表示数字和运算符,用户点击按钮后,...
QQ等级计算器是一款基于中国流行的即时通讯软件QQ设计的工具,用于计算用户QQ...通过学习和理解以上知识点,开发者可以创建出一个功能完善的QQ等级计算器。易语言的易用性使得初学者也能快速上手,实现自己的编程项目。
这里我们关注的是一个使用C#实现的计算器,它不仅具备基本的计算功能,还具有美观的界面,并且在实际评估中得到了满分,这无疑体现了其高质量和实用性。 首先,C#是一种由微软开发的面向对象的编程语言,广泛应用于...
QQ,作为中国最流行的即时通讯软件之一,拥有一个独特的等级系统,根据用户在线时长和其他活动来提升等级。这款计算器旨在为用户提供一个直观的方式来了解他们的QQ等级进度,无需积分,对于编程新手来说是一个很好的...
在这个计算器应用中,开发者可能使用了HTML来设计用户界面,如输入框和按钮,然后用ASP脚本来处理点击事件,执行计算并更新页面显示。 学习ASP源码,可以深入理解服务器端脚本的工作原理,提升Web开发技能。同时,...
在本文中,我们将深入探讨如何在MFC(Microsoft Foundation Classes)程序中实现系统计算器界面的嵌入。MFC是微软提供的一套C++类库,用于简化Windows应用程序开发,特别是图形用户界面(GUI)的创建。 标题“系统...
易语言QQ等级计算器源码是一个基于易语言编程的项目,用于计算腾讯QQ用户的等级。易语言是中国本土开发的一种可视化、面向对象的编程语言,旨在降低编程难度,让普通人也能进行程序设计。本项目的核心目标是解析QQ...
在这个"PB计算器"项目中,我们关注的是其用户界面的设计和实现代码。 用户界面是任何应用程序的重要组成部分,PB计算器的界面设计应该直观且易于操作。它可能包含数字键、运算符键、清除键以及等号键等基本元素,以...
4. **Form1.frm**:这是VB中窗体的设计文件,包含计算器界面的所有控件布局和属性设置。通过查看这个文件,可以了解计算器界面的结构和各个按钮的定义。 5. **Form1.frx**:这是窗体资源文件,存储了窗体上的非代码...
计算器界面应该简洁大方,布局合理,以提供良好的用户体验。这涉及到控件的排列和颜色搭配,以达到友好和直观的效果。在功能实现上,计算器不仅应能进行基本的数字输入和四则运算,还应包含更复杂的数学功能,如平方...
QQ计算器是一款基于LabVIEW开发的计算器程序,它借鉴了腾讯QQ的登录界面设计,因此在视觉效果和用户体验上具有一定的吸引力。LabVIEW,全称Laboratory Virtual Instrument Engineering Workbench(实验室虚拟仪器...
在IT领域,编程是一项基本技能,而开发一个简单的计算器应用是初学者经常接触的实践项目。这个项目以C#语言实现,使用了Windows Forms...同时,这个项目也鼓励分享和学习,你可以通过作者提供的QQ联系他们,共同进步。
QQ等级计算器的用户界面可能包含输入框(让用户输入QQ号和在线天数)、按钮(触发计算操作)和标签或文本框(显示计算结果)。易语言提供了丰富的窗口部件和事件处理机制,使得开发者可以方便地构建图形用户界面。 ...
本文将深入探讨一个专为一元稀疏多项式设计的计算器,该计算器具有图形用户界面(GUI),支持加、减、乘、除操作,还能进行求导和赋值等高级功能。 首先,我们需要理解“一元稀疏多项式”的概念。一元多项式是形如 ...