您好,欢迎访问三七文档
计算器界面的设计主讲教师:翟芸单位:软件工程学院一、教学目标理解并掌握Java中的类、对象等概念;掌握常用布局管理器BorderLayout、FlowLayout、GridLayout的布局方式;理解并掌握JFrame、JButton、JTextField等组件类和面板JPanel类;了解组件尺寸的设置方式——Dimension类的应用。二、教学重点掌握布局管理器BorderLayout、FlowLayout、GridLayout的布局方式能实际应用JFrame、JButton、JTextField、JPanel等类三、教学难点面板类JPanel的应用布局管理器的综合应用四、教学内容显示面板文本框网格布局按钮窗体边界布局按钮面板空白标签空白标签1、计算器界面2、设计思路(1)创建窗体,窗体采用BorderLayout布局(默认);(2)创建显示器面板,采用FlowLayout布局,其中包含一个文本框组件;(3)创建按钮面板,采用GridLayout布局,其中包含16个按钮组件;(4)在窗体的左侧、右侧分别添加一个标签组件,目的是使按钮和边框之间存在一定的距离。(1)创建窗体importjavax.swing.*;publicclassJsq1extendsJFrame{publicJsq1(){setTitle(计算器);setBounds(100,100,230,230);setVisible(true);}publicstaticvoidmain(Stringargs[]){Jsq1f=newJsq1();}}(2)创建显示面板JPanelp1=newJPanel();JTextFieldt=newJTextField(“0”);p1.setLayout(newFlowLayout());t.setHorizontalAlignment(JTextField.RIGHT);t.setColumns(18);t.setEditable(false);p1.add(t);add(p1,North);(3)创建按钮面板JPanelp2=newJPanel();GridLayoutl2=newGridLayout(4,4);p2.setLayout(l2);l2.setHgap(10);l2.setVgap(10);b1=newJButton(1);b2=newJButton(2);b3=newJButton(3);b4=newJButton(+);b5=newJButton(4);b6=newJButton(5);b7=newJButton(6);b8=newJButton(-);b9=newJButton(7);b10=newJButton(8);b11=newJButton(9);b12=newJButton(*);b13=newJButton(.);b14=newJButton(0);b15=newJButton(=);b16=newJButton(/);p2.add(b1);p2.add(b2);p2.add(b3);p2.add(b4);p2.add(b5);p2.add(b6);p2.add(b7);p2.add(b8);p2.add(b9);p2.add(b10);p2.add(b11);p2.add(b12);p2.add(b13);p2.add(b14);p2.add(b15);p2.add(b16);add(p2,Center);(4)创建左右空白标签JLabelleft=newJLabel();JLabelright=newJLabel();left.setPreferredSize(newDimension(10,0));right.setPreferredSize(newDimension(10,0));add(left,West);add(right,East);3、代码:importjavax.swing.*;importjava.awt.*;publicclassJsqextendsJFrame{JButtonb1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16;JTextFieldt;JLabell1,l2;JPanelp1,p2;BorderLayoutlayout1;GridLayoutlayout2;publicJsq(){setTitle(计算器);setBounds(100,100,230,230);layout1=newBorderLayout();setLayout(layout1);p1=newJPanel();t=newJTextField();t.setEditable(false);t.setColumns(18);p1.add(t);add(p1,North);p2=newJPanel();layout2=newGridLayout(4,4);p2.setLayout(layout2);layout2.setHgap(10);layout2.setVgap(10);b1=newJButton(1);b2=newJButton(2);b3=newJButton(3);b4=newJButton(+);b5=newJButton(4);b6=newJButton(5);b7=newJButton(6);b8=newJButton(-);b9=newJButton(7);b10=newJButton(8);b11=newJButton(9);b12=newJButton(*);b13=newJButton(.);b14=newJButton(0);b15=newJButton(=);b16=newJButton(/);p2.add(b1);p2.add(b2);p2.add(b3);p2.add(b4);p2.add(b5);p2.add(b6);p2.add(b7);p2.add(b8);p2.add(b9);p2.add(b10);p2.add(b11);p2.add(b12);p2.add(b13);p2.add(b14);p2.add(b15);p2.add(b16);add(p2,Center);l1=newJLabel();l1.setPreferredSize(newDimension(10,0));add(l1,West);l2=newJLabel();l2.setPreferredSize(newDimension(10,0));add(l2,East);}publicstaticvoidmain(String[]args){Jsqf=newJsq();f.setVisible(true);}}BorderLayout-边界布局管理器Java中设置布局的类叫布局管理器。布局管理器负责管理组件在容器中的排列方式。由BorderLayout类实现的布局管理器称为边界布局管理器,它的布局方式是将容器划分为5个部分,其布局格式如下图所示。注意:当某个位置未加入组件时,其它位置的组件会把此位置占掉。例如:容器的下方没有放任何组件:leftrightcentertop如何设置窗体的布局为边界布局?窗体JFrame的默认布局为BorderLayout布局,故在此不需要设置。如何将组件添加到容器中相应的位置?add(Componentcomp,Objectconstraints)该方法的第一个参数为欲添加的组件对象,第二个参数为组件的显示位置,如下表所示。静态常量常量值组件对齐方式CENTERCenter显示在容器中间NORTHNorth显示在容器顶部SOUTHSouth显示在容器底部WESTWest显示在容器左侧EASTEast显示在容器右侧例如,添加按钮对象b到窗体的顶部:add(b,BorderLayout.NORTH);或者add(b,”North”);setHgap(inthgap)设置组件的水平间距,例如:l1.setHgap(10);//设置组件之间的水平间隔为10像素setVgap(intvgap)设置组件的垂直间距,例如:l1.setVgap(10);//设置组件之间的垂直间隔为10像素GridLayout-网格布局管理器由GridLayout类实现的布局管理器称为网格布局管理器,它的布局方式是将容器按照用户的设置平均划分成若干网,如下图所示。如何设置窗体的布局为网格布局?首先创建GridLayout布局对象,代码如下:GridLayoutl2=newGridLayout(4,4);//l2表示此网格布局为4行4列接着设置面板p2的布局为4行4列的网格布局p2.setLayout(l2);设置网格布局中各组件之间的间距setHgap(inthgap)设置组件的水平间距,例如:l2.setHgap(10)setVgap(intvgap)设置组件的垂直间距,例如:l2.setHgap(10)JPanel面板的应用(1)一个界面中的所有组件只能采用一种布局方式,这样很难得到一个美观的界面;(2)有些布局方式只能管理有限个组件,例如JFrame窗体默认的BorderLayout布局管理器,最多只能管理5个组件。针对上面这两个问题,通过使用JPanel面板就可以解决,首先将面板和组件添加到JFrame窗体中,然后再将子面板和组件添加到上级面板中,这样就可以向面板中添加无数个组件,并且通过对每个面板采用不同的布局管理器,真正解决众多组件间的布局问题。标签尺寸的设置Dimension类用来设置组件的尺寸。如果设置标签的尺寸,代码如下:JLabellabel=newJLabel();//创建标签对象labellabel.setPreferredSize(newDimension(10,0));//设置标签label的宽度为10像素
本文标题:计算器界面的设计
链接地址:https://www.777doc.com/doc-4220454 .html