java计算器课程设计.docx
《java计算器课程设计.docx》由会员分享,可在线阅读,更多相关《java计算器课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
java计算器课程设计
课程设计说明书NO.1
Java简单计算器课程设计
1.功能描述
本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还可以进行(八进制,十进制,十六进制)之间的相互转换,八进制最多可以输入19位数,十进制最多可以输入18位数,十六进制最多可以输入14位数,backspace表示退格,clear表示初始化,在window下直接运行(Jsp2003.bat)即可,界面为灰白对称。
2.方案论证
2.1概要设计
2.1.1自定义类说明
**********************************************************
类名:
This_number_too_big
作用:
自定义的异常类,用来处理计算结果溢出
继承的父类:
Exception类
实现的接口:
没有
classThis_number_too_bigextendsException
{
}//自定义的一个结果溢出异常类
Jsp2003
主类
Frame类
ItemListener类,ActionListener类
classJsp2003extendsFrameimplementsItemListener,ActionListener
publicintnumber=0,length=18;
沈阳大学
课程设计说明书NO.2
//number是用来记录输入的数字个数,
//length是用来设置在不同进制下允许输入的最多数字位数,默认为十进制publiccharmark='n';
//设置运算符号为没有即为‘n’,它的值是‘+’‘-’‘*’‘/’
publicdoubledata=0;
//设置运算数据为零
publiccharch;
//用来临时存放所按按钮的第一个字符
publicbooleanRefresh=false;
//设置lab是否要在输入数据的时候刷新,初始为否
2.1.2主要方法说明:
//用来处理按了运算符后的计算-
publicvoidjs()throwsThis_number_too_big//指定由method抛出异常
{if(mark=='n')//没有运算符
{mark=ch;//,则设置运算符为刚刚输入的字符,
data=Double.parseDouble(lab.getText());//则设置运算数据为lab的值
Refresh=true;//则设置下一次输入的时候要刷新lab
}
else//如果采用的是连续运算(即没有使用‘=’号)则运行下面的语句
{switch(mark)//根据运算符计算结果,并把结果保存到data
{case'+':
data+=Double.parseDouble(lab.getText());break;
case'-':
data-=Double.parseDouble(lab.getText());break;
case'*':
data*=Double.parseDouble(lab.getText());break;
case'/':
data/=Double.parseDouble(lab.getText());break;}
lab.setText(Double.toString(data));//显示运算结果
mark=ch;//设置运算符为刚刚按下的运算符
number=lab.getText().length();//设置输入的字符个数
课程设计说明书NO.3
//System.out.println(lab.getText());//用来调试用的
if(data>Double.MAX_VALUE)
//如果data超过double类型的最大值则抛出自定义的一个异常类
{thrownewThis_number_too_big();}
}//endjs()method
publicvoidenter()//处理输入字符
{if(Refresh==true)
//如果已经设置了运算符则在下一次输入数据的时候要把以前lab的内容清除掉
{lab.setText("0");number=0;Refresh=false;}
if(lab.getText().charAt(0)=='0'&&lab.getText().length()==1)
//如果lab的内容为0则,lab的内容将被所输入的字符代替,
//否则直接在lab的内容后面加上所输入的字符
{lab.setText(Character.toString(ch));number++;}
else
if(number{number++;lab.setText(lab.getText()+ch);}}//endenter()method//八进制或十六进制转换成十进制IpublicStringgoto_10(Strings,longl)//参数s:是要转换的字符串,由于输入的控制,保证了字符串的合法性;//参数l:使用来设置是将8进制还是16进制转换成10进制,它的有效值为8或16;{Stringstr=s;//用来转换的字符串longj=l;//表示进制longlg=0,jing=1;//lg用来记录权乘和,jing用来记录位权charcha;//临时记录要转换的字符for(inti=1;i<=str.length();i++)沈阳大学课程设计说明书NO.4{cha=str.charAt(str.length()-i);switch(cha){case'1':lg=lg+1*jing;break;case'2':lg=lg+2*jing;break;case'3':lg=lg+3*jing;break;case'4':lg=lg+4*jing;break;case'5':lg=lg+5*jing;break;case'6':lg=lg+6*jing;break;case'7':lg=lg+7*jing;break;case'8':lg=lg+8*jing;break;case'9':lg=lg+9*jing;break;case'A':lg=lg+10*jing;break;case'B':lg=lg+11*jing;break;case'C':lg=lg+12*jing;break;case'D':lg=lg+13*jing;break;case'E':lg=lg+14*jing;break;case'F':lg=lg+15*jing;break;}jing*=j;//位权升一级,为下次使用做好准备}returnLong.toString(lg);}//endStringgoto_10()method}2.1.3系统流程图沈阳大学课程设计说明书NO.5图1系统流程图2.2详细设计2.2.1具体设计首先分析这个说要完成的任务,它的主要任务是完成十六进制、十进制、八进制和二进制之间的相互转化,需要包含负数,但不用考虑小数。 其次,确定接口参数。根据功能可知,它传递给外部的就是一个转后的数据,而外部除了需要传递给转化前的数据以外,是否还需要其他参数呢?我们都知道,十进制的负数同样可以利用其他进制进行表示,例如二进制,转化方法是:求十进制数的绝对值对应的二进制数,最高位为1;然后对二进制逐位求反,最高位除外;接着最低一位加1,需要进位的话依次进位,最高位除外。如今的问题就摆在了我们面前,我们如何知道这个数的最高位是第几位呢,也许有人会说,那就用转化后的前面再加上一位,好,即使这样可以成立,那么-1转化后就是11,3转化后也为11,现在如果需要现在的把这个数二进制数再转化为十进制,那么我们如何知道原来的是正数还是负数呢,如果要转化为十六进制,八进制又当如何呢?经过以上的分析发现,还应该有另外一个参数沈阳大学课程设计说明书NO.6——二进制时的宽度,只有这样才能知道谁是最高位,因此就称这个参数为位宽。 最后,设计类。根据第二步的分析,因为位宽对每一个方法都是一样,所以可能把它作为类的成员变量,而另外两个参数转化前的值和转化后的值就分别作为输入参数和返回值。而类对外的接口只有各个转化的方法,因此这几个方法设计为public权限,而其它所有的辅助方法都为private权限。位宽通过构造函数传递,外部不能直接访问和修改,设置也设置为private权限。为了减少计算量,所有的转化都以二进制为中介。例如十六进制到十进制,是十六进制→二进制→十进制。2.2.2主要模块说明[1]把文本框和清空按钮加在第一个板上p1.add(text1);p1.add(bclear);bclear.addActionListener(this);for(inti=0;i<10;i++){b[i]=newButton(Integer.toString(i));}bpoint=newButton(".");beq=newButton("=");[2]把所有数字按钮和"."及"="加在第二个板上for(inti=0;i<10;i++){p2.add(b[i]);b[i].addActionListener(this);}p2.add(bpoint);p2.add(beq);bpoint.addActionListener(this);beq.addActionListener(this);[3]把运算符号按钮加在第三个板上badd=newButton("+");bsbb=newButton("-");bmult=newButton("*");沈阳大学课程设计说明书NO.7bdiv=newButton("/");p3.add(badd);p3.add(bsbb);p3.add(bmult);p3.add(bdiv);badd.addActionListener(this);bsbb.addActionListener(this);bmult.addActionListener(this);bdiv.addActionListener(this);add(p1);add(p2);add(p3);add(newLabel(""));}publicvoidactionPerformed(ActionEvente){for(inti=0;i<10;i++){if(e.getSource()==b[i]||e.getSource()==bpoint){s=s+e.getActionCommand();text1.setText(s);break;}}[4]判断运算符号,并作上标记if(e.getSource()==badd){x=Double.parseDouble(s);flag=1;text1.setText("");s="";}沈阳大学课程设计说明书NO.8if(e.getSource()==bsbb){x=Double.parseDouble(s);flag=2;text1.setText("");s="";}if(e.getSource()==bmult){x=Double.parseDouble(s);flag=3;text1.setText("");s="";}if(e.getSource()==bdiv){x=Double.parseDouble(s);flag=4;text1.setText("");s="";}[5]清空并标志为0if(e.getSource()==bclear){text1.setText("");s="";flag=0;}[6]运算if(e.getSource()==beq){switch(flag){沈阳大学课程设计说明书NO.9case1:{x=Double.parseDouble(s)+x;Strings=String.valueOf(x);text1.setText(s);break;}case2:{x=x-Double.parseDouble(s);Strings=String.valueOf(x);text1.setText(s);break;}case3:{x=Double.parseDouble(s)*x;Strings=String.valueOf(x);text1.setText(s);break;}case4:{if(Double.parseDouble(s)==0){text1.setText("除数不能为0!");break;}x=x/Double.parseDouble(s);Strings=String.valueOf(x);text1.setText(s);break;}3.运行结果3.1程序运行效果截图沈阳大学课程设计说明书NO.10图2计算器运行效果图图3加法运算效果图图4减法运算效果图沈阳大学课程设计说明书NO.11图5乘法运算效果图图6除法运算效果图沈阳大学课程设计说明书NO.123.2程序测试分析3.2.1程序运行情况:程序正常的响应按钮事件,输入的数值长度受变量length的限定,进行混合四则运算的时候,结果如果不是很大,可以正常显示,但如果结果很大,就可能采用科学记数方式,这样带来了进制转换时的麻烦,需要特殊的处理科学记数里的E,当结果太大的时候,有可能超出可能表示的最大值,(结果溢出),这个时候就要对结果进行必要的异常处理,我在输出结果的方法内设置if语句,如果结果大于某一个值就抛出一个This_number_too_big类型的类,再使用try-catch,捕捉输出结果的方法抛出的异常对象。然后进行,重制归零的处理。3.2.2程序异常处理:当结果超出Double.MAX_VALUE时,将抛出一个This_number_too_big类的异常对象,这个是我自定义的一个异常类它继承自Exception类,然后使用try-catch去捕捉这个异常,异常的处理如下:try{js();}catch(This_number_too_bige){lab.setText("0");number=0;mark='n';Refresh=false;System.out.println("Thenumberistoobig");}//如果出现异常则初始化效果如同clear键4.总结通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它还让我学会了在网上查阅那些无限的资料。通过对此课题的开发,使我对用JBuilder9.0开发系统有了一个比较清楚的认识,体会到理论和实践的重要性。由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。对于文中出现的不足和系统中出现的问题敬请老师指导。5.参考文献1.朱战立,沈伟.Java程序设计实用教程[M].北京:电子工业出版社,2005.01:59-982.李诚等.Java2简明教程[M],第2版.北京:清华大学出版社,2004.08:165-201沈阳大学课程设计说明书NO.133.耿祥义.Java课程设计[M].北京:清华大学出版社,2004.02:53-786.附录:源代码importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.Vector;publicclassTuo{Stringstr1="0";//运算数1初值一定为0为了程序的安全Stringstr2="0";//运算数2Stringfh="+";//运算符Stringjg="";//结果//状态开关重要intk1=1;//开关1用于选择输入方向将要写入str2或str2intk2=1;//开关2符号键次数k2>1说明进行的是2+3-9+8这样的多符号运算intk3=1;//开关3str1是否可以被清0==1时可以!=1时不能被清0intk4=1;//开关4str2同上intk5=1;//开关5控制小数点可否被录入==1时可以!=1输入的小数点被丢掉JButtonjicunqi;//寄存器记录是否连续按下符号键Vectorvt=newVector(20,10);JFrameframe=newJFrame("计算器");JTextFieldjg_TextField=newJTextField(jg,20);//20列JButtonclear_Button=newJButton("清除");JButtonbutton0=newJButton("0");JButtonbutton1=newJButton("1");JButtonbutton2=newJButton("2");JButtonbutton3=newJButton("3");沈阳大学课程设计说明书NO.14JButtonbutton4=newJButton("4");JButtonbutton5=newJButton("5");JButtonbutton6=newJButton("6");JButtonbutton7=newJButton("7");JButtonbutton8=newJButton("8");JButtonbutton9=newJButton("9");JButtonbutton_Dian=newJButton(".");JButtonbutton_jia=newJButton("+");JButtonbutton_jian=newJButton("-");JButtonbutton_cheng=newJButton("*");JButtonbutton_chu=newJButton("/");JButtonbutton_dy=newJButton("=");////////////////////////////////////////////////////////////////////////publicstaticvoidmain(String[]args){Tuotuo=newTuo();}/////////////////////////////////////////////////////////////////////////Tuo(){button0.setMnemonic(KeyEvent.VK_0);//等效键//其它等效键略,jg_TextField.setHorizontalAlignment(JTextField.RIGHT);//文本框右对齐JPanelpan=newJPanel();pan.setLayout(newGridLayout(4,4,5,5));//四行四列边距为5像素pan.add(button7);pan.add(button8);沈阳大学课程设计说明书NO.15pan.add(button9);pan.add(button_chu);pan.add(button4);pan.add(button5);pan.add(button6);pan.add(button_cheng);pan.add(button1);pan.add(button2);pan.add(button3);pan.add(button_jian);pan.add(button0);pan.add(button_Dian);pan.add(button_dy);pan.add(button_jia);pan.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));//pan对象的边距JPanelpan2=newJPanel();pan2.add(jg_TextField);JPanelpan3=newJPanel();//为什么要多此一句呢?因为我不会设置按钮的大小pan3.setLayout(newFlowLayout());pan3.add(clear_Button);//clear_Button.setSize(10,10);//设置清零按钮的大小吗的不好使!!frame.setLocation(300,200);//主窗口出现在位置frame.setResizable(false);//不能调大小frame.getContentPane().setLayout(newBorderLayout());frame.getContentPane().add(pan2,BorderLayout.NORTH);frame.getContentPane().add(pan,BorderLayout.CENTER);
{number++;lab.setText(lab.getText()+ch);}
}//endenter()method
//八进制或十六进制转换成十进制I
publicStringgoto_10(Strings,longl)
//参数s:
是要转换的字符串,由于输入的控制,保证了字符串的合法性;
//参数l:
使用来设置是将8进制还是16进制转换成10进制,它的有效值为8或16;
{Stringstr=s;//用来转换的字符串
longj=l;//表示进制
longlg=0,jing=1;//lg用来记录权乘和,jing用来记录位权
charcha;//临时记录要转换的字符
for(inti=1;i<=str.length();i++)
课程设计说明书NO.4
{cha=str.charAt(str.length()-i);
switch(cha)
{case'1':
lg=lg+1*jing;break;
case'2':
lg=lg+2*jing;break;
case'3':
lg=lg+3*jing;break;
case'4':
lg=lg+4*jing;break;
case'5':
lg=lg+5*jing;break;
case'6':
lg=lg+6*jing;break;
case'7':
lg=lg+7*jing;break;
case'8':
lg=lg+8*jing;break;
case'9':
lg=lg+9*jing;break;
case'A':
lg=lg+10*jing;break;
case'B':
lg=lg+11*jing;break;
case'C':
lg=lg+12*jing;break;
case'D':
lg=lg+13*jing;break;
case'E':
lg=lg+14*jing;break;
case'F':
lg=lg+15*jing;break;}
jing*=j;//位权升一级,为下次使用做好准备
returnLong.toString(lg);
}//endStringgoto_10()method
2.1.3系统流程图
课程设计说明书NO.5
图1系统流程图
2.2详细设计
2.2.1具体设计
首先分析这个说要完成的任务,它的主要任务是完成十六进制、十进制、八进制和二进制之间的相互转化,需要包含负数,但不用考虑小数。
其次,确定接口参数。
根据功能可知,它传递给外部的就是一个转后的数据,而外部除了需要传递给转化前的数据以外,是否还需要其他参数呢?
我们都知道,十进制的负数同样可以利用其他进制进行表示,例如二进制,转化方法是:
求十进制数的绝对值对应的二进制数,最高位为1;然后对二进制逐位求反,最高位除外;接着最低一位加1,需要进位的话依次进位,最高位除外。
如今的问题就摆在了我们面前,我们如何知道这个数的最高位是第几位呢,也许有人会说,那就用转化后的前面再加上一位,好,即使这样可以成立,那么-1转化后就是11,3转化后也为11,现在如果需要现在的把这个数二进制数再转化为十进制,那么我们如何知道原来的是正数还是负数呢,如果要转化为十六进制,八进制又当如何呢?
经过以上的分析发现,还应该有另外一个参数
课程设计说明书NO.6
——二进制时的宽度,只有这样才能知道谁是最高位,因此就称这个参数为位宽。
最后,设计类。
根据第二步的分析,因为位宽对每一个方法都是一样,所以可能把它作为类的成员变量,而另外两个参数转化前的值和转化后的值就分别作为输入参数和返回值。
而类对外的接口只有各个转化的方法,因此这几个方法设计为public权限,而其它所有的辅助方法都为private权限。
位宽通过构造函数传递,外部不能直接访问和修改,设置也设置为private权限。
为了减少计算量,所有的转化都以二进制为中介。
例如十六进制到十进制,是十六进制→二进制→十进制。
2.2.2主要模块说明
[1]把文本框和清空按钮加在第一个板上
p1.add(text1);p1.add(bclear);
bclear.addActionListener(this);
for(inti=0;i<10;i++)
b[i]=newButton(Integer.toString(i));
bpoint=newButton(".");
beq=newButton("=");
[2]把所有数字按钮和"."及"="加在第二个板上
for(inti=0;i<10;i++){
p2.add(b[i]);
b[i].addActionListener(this);
p2.add(bpoint);p2.add(beq);
bpoint.addActionListener(this);beq.addActionListener(this);
[3]把运算符号按钮加在第三个板上
badd=newButton("+");
bsbb=newButton("-");
bmult=newButton("*");
课程设计说明书NO.7
bdiv=newButton("/");
p3.add(badd);
p3.add(bsbb);
p3.add(bmult);
p3.add(bdiv);
badd.addActionListener(this);
bsbb.addActionListener(this);
bmult.addActionListener(this);
bdiv.addActionListener(this);
add(p1);add(p2);add(p3);add(newLabel(""));
publicvoidactionPerformed(ActionEvente)
if(e.getSource()==b[i]||e.getSource()==bpoint){
s=s+e.getActionCommand();
text1.setText(s);
break;
[4]判断运算符号,并作上标记
if(e.getSource()==badd){
x=Double.parseDouble(s);
flag=1;
text1.setText("");
s="";
课程设计说明书NO.8
if(e.getSource()==bsbb){
flag=2;
if(e.getSource()==bmult){
flag=3;
if(e.getSource()==bdiv){
flag=4;
[5]清空并标志为0
if(e.getSource()==bclear){
flag=0;
[6]运算
if(e.getSource()==beq){
switch(flag){
课程设计说明书NO.9
case1:
x=Double.parseDouble(s)+x;
Strings=String.valueOf(x);
text1.setText(s);break;
case2:
x=x-Double.parseDouble(s);
case3:
{x=Double.parseDouble(s)*x;
case4:
if(Double.parseDouble(s)==0){text1.setText("除数不能为0!
");break;}
x=x/Double.parseDouble(s);
3.运行结果
3.1程序运行效果截图
课程设计说明书NO.10
图2计算器运行效果图
图3加法运算效果图
图4减法运算效果图
课程设计说明书NO.11
图5乘法运算效果图
图6除法运算效果图
课程设计说明书NO.12
3.2程序测试分析
3.2.1程序运行情况:
程序正常的响应按钮事件,输入的数值长度受变量length的限定,进行混合四则运算的时候,结果如果不是很大,可以正常显示,但如果结果很大,就可能采用科学记数方式,这样带来了进制转换时的麻烦,需要特殊的处理科学记数里的E,当结果太大的时候,有可能超出可能表示的最大值,(结果溢出),这个时候就要对结果进行必要的异常处理,我在输出结果的方法内设置if语句,如果结果大于某一个值就抛出一个This_number_too_big类型的类,再使用try-catch,捕捉输出结果的方法抛出的异常对象。
然后进行,重制归零的处理。
3.2.2程序异常处理:
当结果超出Double.MAX_VALUE时,将抛出一个This_number_too_big类的异常对象,这个是我自定义的一个异常类它继承自Exception类,然后使用try-catch去捕捉这个异常,异常的处理如下:
try
{js();}
catch(This_number_too_bige)
lab.setText("0");
number=0;
mark='n';
Refresh=false;
System.out.println("Thenumberistoobig");
}//如果出现异常则初始化效果如同clear键
4.总结
通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。
这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。
它还让我学会了在网上查阅那些无限的资料。
通过对此课题的开发,使我对用JBuilder9.0开发系统有了一个比较清楚的认识,体会到理论和实践的重要性。
由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。
对于文中出现的不足和系统中出现的问题敬请老师指导。
5.参考文献
1.朱战立,沈伟.Java程序设计实用教程[M].北京:
电子工业出版社,2005.01:
59-98
2.李诚等.Java2简明教程[M],第2版.北京:
清华大学出版社,2004.08:
165-201
课程设计说明书NO.13
3.耿祥义.Java课程设计[M].北京:
清华大学出版社,2004.02:
53-78
6.附录:
源代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.util.Vector;
publicclassTuo
Stringstr1="0";//运算数1初值一定为0为了程序的安全
Stringstr2="0";//运算数2
Stringfh="+";//运算符
Stringjg="";//结果
//状态开关重要
intk1=1;//开关1用于选择输入方向将要写入str2或str2
intk2=1;//开关2符号键次数k2>1说明进行的是2+3-9+8这样的多符号运算
intk3=1;//开关3str1是否可以被清0==1时可以!
=1时不能被清0
intk4=1;//开关4str2同上
intk5=1;//开关5控制小数点可否被录入==1时可以!
=1输入的小数点被丢掉
JButtonjicunqi;//寄存器记录是否连续按下符号键
Vectorvt=newVector(20,10);
JFrameframe=newJFrame("计算器");
JTextFieldjg_TextField=newJTextField(jg,20);//20列
JButtonclear_Button=newJButton("清除");
JButtonbutton0=newJButton("0");
JButtonbutton1=newJButton("1");
JButtonbutton2=newJButton("2");
JButtonbutton3=newJButton("3");
课程设计说明书NO.14
JButtonbutton4=newJButton("4");
JButtonbutton5=newJButton("5");
JButtonbutton6=newJButton("6");
JButtonbutton7=newJButton("7");
JButtonbutton8=newJButton("8");
JButtonbutton9=newJButton("9");
JButtonbutton_Dian=newJButton(".");
JButtonbutton_jia=newJButton("+");
JButtonbutton_jian=newJButton("-");
JButtonbutton_cheng=newJButton("*");
JButtonbutton_chu=newJButton("/");
JButtonbutton_dy=newJButton("=");
////////////////////////////////////////////////////////////////////////
publicstaticvoidmain(String[]args)
Tuotuo=newTuo();
/////////////////////////////////////////////////////////////////////////
Tuo()
button0.setMnemonic(KeyEvent.VK_0);//等效键
//其它等效键略,
jg_TextField.setHorizontalAlignment(JTextField.RIGHT);//文本框右对齐
JPanelpan=newJPanel();
pan.setLayout(newGridLayout(4,4,5,5));//四行四列边距为5像素
pan.add(button7);
pan.add(button8);
课程设计说明书NO.15
pan.add(button9);
pan.add(button_chu);
pan.add(button4);
pan.add(button5);
pan.add(button6);
pan.add(button_cheng);
pan.add(button1);
pan.add(button2);
pan.add(button3);
pan.add(button_jian);
pan.add(button0);
pan.add(button_Dian);
pan.add(button_dy);
pan.add(button_jia);
pan.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));//pan对象的边距
JPanelpan2=newJPanel();
pan2.add(jg_TextField);
JPanelpan3=newJPanel();//为什么要多此一句呢?
因为我不会设置按钮的大小
pan3.setLayout(newFlowLayout());
pan3.add(clear_Button);
//clear_Button.setSize(10,10);//设置清零按钮的大小吗的不好使!
!
frame.setLocation(300,200);//主窗口出现在位置
frame.setResizable(false);//不能调大小
frame.getContentPane().setLayout(newBorderLayout());
frame.getContentPane().add(pan2,BorderLayout.NORTH);
frame.getContentPane().add(pan,BorderLayout.CENTER);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1