Java程序设计案例教程 第2版 习题答案 习题10_第1页
Java程序设计案例教程 第2版 习题答案 习题10_第2页
Java程序设计案例教程 第2版 习题答案 习题10_第3页
Java程序设计案例教程 第2版 习题答案 习题10_第4页
Java程序设计案例教程 第2版 习题答案 习题10_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE1【习题10】一、选择题CDACABCD二、填空题1、AWT2、顶层容器中间容器3、FlowLayoutBorderLayoutGridLayout4、单行文本框口令框文本框5、列表框JList三、简答题1、简述GUI界面设计的步骤。答:1、创建顶层容器窗体,作为放置其他组件的容器;创建要放置在窗体上的各个组件;将各个组件添加到容器上(可使用布局管理器来管理位置);处理事件响应,本例处理的是窗体关闭事件;设置顶层容器组件大小;使顶层容器组件可见。2、什么是容器组件?Java中容器有哪些?答:容器的主要作用是包容其他组件,并按一定的方式组织排列它们。Java中的容器主要分为顶层容器和中间容器。顶层容器是进行图形编程的基础,可以在其中放置若干中间容器或组件。在Swing中,有以下4中顶层容器:JWindow、JFrame、JDialog和JApplet。中间容器专门专门放置其他组件,介于顶层容器和普通Swing组件中间的容器。常用的中间容器有:JPanel、JOptionPane、JMenuBar、JToolBar、JTabbedPane等。3、什么是布局管理?Java提供了哪几种布局?各有什么作用?答:布局管理器负责控制组件在容器中的布局。Java语言提供了多种布局管理器,主要有:FlowLayout、BorderLayout、GridLayout等。FlowLayout称为流式布局管理器。在这种布局管理器中,组件一个接一个从左往右、从上到下一排一排地依次放在容器中。FlowLayout默认为居中对齐。当容器尺寸发生变化时,组件大小不会变,但组件在容器中的位置会发生相应的变化。BorderLayout称为边界布局管理器。这种布局管理器将容器版面分为5个区域:北区、南区、东区、西区和中区,遵循“上北下南、左西右东”的规律。5个区域可以用5个常量NORTH、SOUTH、EAST、WEST和CENTER来表示。当容器的尺寸变化时,组件的相对位置不会改变,NORTH和SOUTH组件高度不变,宽度改变,EAST和WEST组件宽度不变、高度改变,中间组件尺寸变化。GridLayout称为网格布局管理器。这种布局管理器通过设置行列将容器划分成大小相同的规则网格。添加组件是按照“先行后列”的顺序依次添加。当容器尺寸发生变化时,组件的相对位置不变,大小变化。4、简述Java的事件处理机制。答:图1事件处理模型编写事件处理的过程是(见图1):①创建一个组件,并设置其有关属性,如显示的大小和位置等。②为该组件编写某种事件的监听器类(实现监听器接口或继承适配器),可以用外部类、内部类或匿名类的形式。=3\*GB3③通过组件的addXXXListener()注册监听器类的实例。如果采用匿名类的形式,监听器的声明、创建和注册同时完成。程序运行时,AWT处理事件的流程是(见图1):⑴用户与界面交互,执行一个操作。⑵组件响应操作,产生一个事件对象。⑶组件将事件对象传递给监听器。⑷监听器根据事件的具体内容执行相应的操作。四、编程题1、编写加法程序:在两个文本框中输入两个数,点击“计算”按钮,计算之和显示在第三个文本框中。importjava.awt.FlowLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTextField;publicclassAddDemo{ privateJFrameframe; privateJLabellabel1; privateJLabeladdsign; privateJLabelequalsign; privateJTextFieldnum1; privateJTextFieldnum2; privateJTextFieldresult; privateJButtonbutton; privateJPanelpanel1; privateJPanelpanel2; publicAddDemo(){ frame=newJFrame("求和"); label1=newJLabel("请输入两个数:"); addsign=newJLabel("+"); equalsign=newJLabel("="); button=newJButton("求和"); num1=newJTextField(5); num2=newJTextField(5); result=newJTextField(8); panel1=newJPanel(); panel2=newJPanel(); panel1.add(label1); panel1.add(num1); panel1.add(addsign); panel1.add(num2); panel1.add(equalsign); panel1.add(result); panel2.add(button); frame.setLayout(newFlowLayout()); frame.add(panel1); frame.add(panel2); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400,150); frame.setVisible(true); button.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ intnumber1,number2,res; number1=Integer.parseInt(num1.getText()); number2=Integer.parseInt(num2.getText()); res=number1+number2; result.setText(res+""); } }); } publicstaticvoidmain(String[]args){ newAddDemo(); }}2、用标签显示一道简单的测试题,答案使用单选按钮列出,用户选择答案后,会在另一个标签中显示结果或说明。importjava.awt.FlowLayout;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjavax.swing.ButtonGroup;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JRadioButton;publicclassEx10_2{ privateJFrameframe; privateJLabellabel1; privateJLabellabel2; JRadioButtonjbA; JRadioButtonjbB; JRadioButtonjbC; JRadioButtonjbD; ButtonGroupbg; privateJButtonbutton; privateJPanelpanel1; privateJPanelpanel2; privateJPanelpanel3; publicEx10_2(){ frame=newJFrame("单选题"); label1=newJLabel("将GUI窗口划分为东、西、南、北、中五个部分的布局管理器是:"); jbA=newJRadioButton("FlowLayout"); jbB=newJRadioButton("GridLayout"); jbC=newJRadioButton("CardLayout"); jbD=newJRadioButton("BorderLayout"); bg=newButtonGroup(); bg.add(jbA); bg.add(jbB); bg.add(jbC); bg.add(jbD); label2=newJLabel(); panel1=newJPanel(); panel2=newJPanel(); panel3=newJPanel(); panel1.add(label1); panel2.add(jbA); panel2.add(jbB); panel2.add(jbC); panel2.add(jbD); panel3.add(label2); frame.setLayout(newFlowLayout()); frame.add(panel1); frame.add(panel2); frame.add(panel3); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400,200); frame.setVisible(true); jbA.addItemListener(newItemStateChanged()); jbB.addItemListener(newItemStateChanged()); jbC.addItemListener(newItemStateChanged()); jbD.add

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论