- 浏览: 15079 次
最新评论
-
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 1829问题是这样的:如何存储5亿个正整数,并对这些数据进行排重。 ... -
哈弗曼树及哈弗曼编码简述
2013-08-18 17:13 1549哈弗曼树是一种特 ... -
滑杆组件的应用实例
2013-08-15 14:16 1497滑杆JSlider类是让用户能够通过滑块的滑动来改变选择值的组 ... -
简单分形(谢尔宾斯基三角形和地毯)
2013-06-25 11:05 4327对于分形,我的理解就是:由小元件组成整体,然后再用另一或相 ... -
用数组/链表实现的队列
2013-04-22 16:30 1234在之前的重绘中,用到了数组来传递数据,但是这个数组只能用于某种 ... -
事件机制与简单画板
2013-04-09 16:18 825一、事件机制 1、事件参与者 事件机制的参与者有三个:事件源 ... -
简单登陆界面的实现
2013-04-06 19:00 1457要用java实现一个简单登陆界面,首先应该来了解下java中有 ... -
类与对象
2013-03-22 00:02 6841、类与对象: ... -
类的继承,接口及抽象类
2013-03-21 23:08 794一、类的继承 1、什么 ...
相关推荐
使用QT开发的计算器程序,可实现加减乘除运算和运算记录保存功能。
QQ界面,计算器,学生管理系统,秒表,打地鼠。 源码和exe程序。
数据结构课程设计写的计算器,带界面,具有报错功能,可以进行加减乘除括号混合运算,与或非逻辑运算。开发环境vs2017。上传为整个计算器设计工程的压缩包,可以用vs2017打开(上传的另外一个计算器有点问题,可是撤...
java swing(jdk版本10)实现的图形化界面计算器,已实现记忆功能,阶乘功能,幂次计算,可以进行带括号的复杂运算
Java 计算器 采用gridbaglayout布局实现的界面布局
设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。 计算器设计时主要利用到get和set两个...
Windows窗体应用程序:具体制作步聚参见我的QQ日志 有兴趣可加My QQ:771084591
PB计算器的界面和代码,完整版,无BUG。
C#计算器功能,完成老师布置的大作业,页面很好看,没有缺陷。 各种运算都已涵盖 包括异常处理等等 。作业老师已经给了满分,大家可以下载下来参考 嗯嗯嗯,非常棒
MFC界面,点击嵌入程序按钮,启动系统计算器,通过窗口标题,查找窗口句柄,并嵌入到MFC界面中。话说为什么资源分数为什么不能取消。
Qt实现简易计算器(源码),可以实现基本的加减乘除以及平方开方和三角函数的计算
基于labview的计算器程序,学习了腾讯qq的登陆界面,软件界面美观、简单、使用
一元稀疏多项式计算器(带界面),其中含有了加减乘除,求导,赋值的功能,并能在设定的界面上运行。
C#源代码全部都在,很值得初学者学习!希望你能和大家相互学习,我的QQ是616888521,如有疑问请联系本人,相互学习,也可以把你做的东西,我们相互学习!
计算器线性布局初始界面,简单的计算器,加减乘除四则运算
博文基于Python实现可以进制转换和计算阶乘的科学计算器 https://blog.csdn.net/qq_34674558/article/details/124893964
基于MFC界面的计算器,可以实现简单的加减乘除,代码简单易懂,下载可以直接运行
按照实验要求,用java编辑简单计算器界面,并可以连续计算+、-、*、/等简单的数据运算
计算器用wpf开发界面,实现标准版的基本功能,界面模仿Win10自带计算器双行显示结果,界面可拉伸等。源代码压缩包,可直接在vs上运行。
仿window自制计算器自带科学计算法,三角函数反三角函数、阶层等等。