Java语言程序设计郑莉课后习题答案#优选、_第1页
Java语言程序设计郑莉课后习题答案#优选、_第2页
Java语言程序设计郑莉课后习题答案#优选、_第3页
Java语言程序设计郑莉课后习题答案#优选、_第4页
Java语言程序设计郑莉课后习题答案#优选、_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、Java语言程序设计第九章课后习题答案1.编写一个程序,该程序绘制一个5X9的网络,使用drawLine方法。/NetWork类importjava.awt.Graphics;importjavax.swing.JFrame;publicclassNetWorkextendsJFramepublicNetWork()/设置窗体大小this.setSize(130,130);/设置窗体大小不可改变this.setResizable(false);/设置默认关闭方式,关闭窗体的同时结束程序this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/将窗

2、体显示出来this.setVisible(true);/横纵格之间都间隔10像素,起点在(20,40)publicvoidpaint(Graphicsg)/绘制横向线for(inti=0;i<=5;i+)g.drawLine(20,40+i*10,110,40+i*10);/绘制纵向线for(inti=0;i<=9;i+)g.drawLine(20+i*10,40,20+i*10,90);/test9_1类publicclasstest9_1publicstaticvoidmain(Stringargs)newNetWork();运行结果:2.编写一个程序,该程序以不同的颜色随机产

3、生三角形,每个三角形用不同的颜色进行填充。/Triangle类importjava.awt.Color;importjava.awt.Graphics;importjava.util.Random;importjavax.swing.JFrame;publicclassTriangleextendsJFrameRandomrnd=newRandom();/这里定义4个三角形intx=newint43;inty=newint43;intcolor=newint43;publicTriangle()for(inti=0;i<4;i+)for(intj=0;j<3;j+)colorij=

4、rnd.nextInt(255);xij=rnd.nextInt(i*100+100);yij=rnd.nextInt(i*100+100)+50;窗体上沿/加50像素是为了避免顶到/窗体标题this.setTitle("随机三角形”);/窗体大小this.setSize(500,500);/窗体大小不可变this.setResizable(false);/关闭窗体的同时结束程序this.setDefaultCloseOperation(JFrame./显示窗体EXIT_ON_CLOSE);this.setVisible(true);publicvoidpaint(Graphicsg

5、)for(inti=0;i<4;i+)g.setC010KnewColor(colori0,colori1,colori2);g.fillPolygon(xi,yi,3);/test9_2publicclasstest9_2publicstaticvoidmain(String口args)newTriangle();运行结果:3.编写一个Applet,该程序请求用户输入圆的半径,然后显示该圆的直径、周长和面积。/test9_3importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.a

6、wt.event.ActionListener;publicclasstest9_3extendsJApplet/声明5个标签privateJLabeljLabel1;privateJLabeljLabel2;privateJLabeljLabel3;privateJLabeljLabel4;privateJLabeljLabel5;/1个单行文本privateJTextFieldtextOfRadius/2个按钮privateJButtonjButton1;privateJButtonjButton2;/初始化publicvoidinit()try(newRunnable()java.awt

7、.EventQueue.invokeAndWaitpublicvoidrun()initComponents(););catch(Exceptionex)ex.printStackTrace();privatevoidinitComponents()/声明8个组件jLabel1=newJLabel("输入圆的半径:",SwingConstants.CENTER);jLabel2=newJLabel("圆的周长:",SwingConstants.CENTER);jLabel3=newJLabel("",SwingConstants.CE

8、NTER);jLabel4=newJLabel("圆的面积:",SwingConstants.CENTER);jLabel5=newJLabel("",SwingConstants.CENTER);textOfRadius=newJTextField("半径");jButton1=newJButton("计算");jButton2=newJButton("退出");/按钮添加监听器jButton1.addActionListener(newActionListener()publicvoidac

9、tionPerformed(ActionEventevt)jButton1ActionPerformed(evt););/按钮添加监听器jButton2.addActionListener(newActionListener()publicvoidactionPerformed(ActionEventevt)jButton2ActionPerformed(evt););/声明定义内容面板,并且设置其布局格式为:4行2列格子Containerc=getContentPane();c.setLayout(newGridLayout(4,2);/将8个组件加入到内容面板c.add(jLabel1);

10、c.add(textOfRadius);c.add(jLabel2);c.add(jLabel3);c.add(jLabel4);c.add(jLabel5);c.add(jButton1);c.add(jButton2);/求周长方法privateStringRound(doublea)doubleperimeter=a*2*3.14;Strings=newString(String.valueOf(perimeter);returns;/求面积方法privateStringArea(doublea)doublearea=a*a*3.14;Strings=newString(String.v

11、alueOf(area);returns;/点击“计算”按钮jButton1触发的方法privatevoidjButton1ActionPerformed(ActionEventevt)/捕获单文本输入非数字的异常tryStrings=textOfRadius.getText();/获得单文本字符doublea=Double.valueOf(s).floatValue();/字符转化为双精度jLabel3.setText(Round(a);/标签内容为周长jLabel5.setText(Area(a);/标签内容为面积catch(NumberFormatExceptionr)/单文本为非数字弹

12、出提示“输入错误”框JOptionPane.showMessageDialog(this,"请输入数字类型","输入错误",JOptionPane.WARNING_MESSAGE);textOfRadius.setText("");/点击“退出”按钮jButton2触发的方法publicvoidjButton2ActionPerformed(ActionEventevt)System.exit(0);运行结果:编译text9_3.java产生字节码文件test9_3.class,接下来需要编写一个HTMDt件text9_3.html来

13、嵌入text9_3.class,代码如下:<html><appletcode="test9_3.class"></applet></html>将test9_3.html文件和test9_3.class文件放在同一个目录下,在浏览器中打开这个test9_3.html文件,实现的效果如下:r白D:v.rorkspaceliitIerbin3,hinnI-春Diwork?pacehitlerbin交收黛夫|,C+23*蜃爰的势I;Z百度遛素J.1.0国的周长:6.28国的面相;314退出4 .编写一个Applet,向其输入五个数,然

14、后以条形图(bargraph)的形式来表示这些数。5 .编写一个绘制圆形的程序,当鼠标在绘制区域中单击时,该正方形的左上角顶点应准确的跟随鼠标光标移动,重绘该圆形。/MyJFrame类importjava.awt.Graphics;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.JFrame;publicclassMyJFrameextendsJFrameimplementsMouseListenerintx=50;inty=50;intradius=50;publicMy

15、JFrame()this.setTitle("绘制圆形");this.setSize(200,200);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.addMouseListener(this);this.setVisible(true);publicvoidpaint(Graphicsg)g.drawOval(x,y,radius,radius);publicvoidmouseClicked(MouseEvente)/TODOAuto-generatedm

16、ethodstubthis.x=e.getX();this.y=e.getY();this.repaint();System.out.println("x:"+e.getX()+"ny:"+e.getY();publicvoidmouseEntered(MouseEvente)/TODOAuto-generatedmethodstubpublicvoidmouseExited(MouseEvente)/TODOAuto-generatedmethodstubpublicvoidmousePressed(MouseEvente)/TODOAuto-gene

17、ratedmethodstubpublicvoidmouseReleased(MouseEvente)/TODOAuto-generatedmethodstubtest9_5publicclasstest9_3publicstaticvoidmain(String口args)newMyJFrame();运行结果:6 .编写一个“猜数”程序:该程序随机在1到100的范围内选择一个供用户猜测的整数,然后改程序显示提示信息,要求用户输入一个1到100之间的整数,根据输入偏大、偏小、正确,程序将显示不同的图标。/GuessNumber类importimportimportimportjava.awt.

18、GridLayout;java.awt.event.ActionEvent;java.awt.event.ActionListener;java.util.Random;importimportimportimportimportimportjavax.swing.JButton;javax.swing.JFrame;javax.swing.JLabel;javax.swing.JOptionPane;javax.swing.JTextField;javax.swing.SwingConstants;publicclassGuessNumberextendsJFrameimplementsAc

19、tionListenerintnumberOfRandom;/游戏程序随机数JLabellabel1;/标签1JLabellabel2;/标签2JLabellabel3;/标签3intnumberOfUser;/玩家输入整数JButtonbuttonOfSure;/JButtonbuttonOfExit;/JTextFieldjTextField;/“输入一个1到100之间的整数“提示”提示的内容(偏大、偏小、正确)确定按钮退出按钮猜数输入单行文本框,SwingConstants.CENTER););"确定");buttonOfSure);/默认用户按this);"

20、;退出");this);publicvoidinit()/窗体的定义this.setTitle("这是一个猜数游戏");this.setSize(400,120);this.setResizable(false);this.setLayout(newGridLayout(3,2);EXIT_ON_CLOSE);this.setDefaultCloseOperation(JFrame./随机数Randomrandom=newRandom();numberOfRandom=random.nextInt(100);/各组件的定义label1=newJLabel(&quo

21、t;请输入一个1到100之间的整数:");label2=newJLabel("提示:label3=newJLabel("猜猜看buttonOfSure=newJButton(this.getRootPane().setDefaultButton(下回车键触发“确定”按钮buttonOfSure.addActionListener(buttonOfExit=newJButton(buttonOfExit.addActionListener(jTextField=newJTextField("输入");/窗体加入各组件this.add(label1

22、);this.add(jTextFieldthis.add(label2);this.add(label3);this.add(buttonOfSurethis.add(buttonOfExit/显示窗体this.setVisible(true);System.out.println(numberOfRandom);/偷偷看看随机数,哈哈/事件处理publicvoideventHandle()/捕获非整型输入异常trynumberOfUser=Integer.parseInt(jTextField.getText();/获得用户输入数if(numberOfUser<1|numberOfU

23、ser>100)JOptionPane.showMessageDialog(this,"请输入1到100之间的整数");elseif(numberOfUser>numberOfRandom)label3.setText("偏大");jTextField.requestFocus();/清空文本框并使重新获得焦点if(numberOfUser<numberOfRandom)label3.setText("偏小");jTextField.requestFocus();if(numberOfUser=numberOfRan

24、dom)label3.setText("恭喜你,答对了。");jTextField.requestFocus();catch(NumberFormatExceptione)JOptionPane.showMessageDialog(this,"请输入整数","输入错误",JOptionPane.WARNING_MESSAGE);jTextField.requestFocus();/按钮触发选择publicvoidactionPerformed(ActionEvente)if(e.getActionCommand()="确定&

25、quot;)this.eventHandle();if(e.getActionCommand()="退出")System.exit(0);publicstaticvoidmain(String口args)newGuessNumber().init();运行结果:7.练习使用JscrollPane。使用BorderLayout将JFrame布局分为左右两块;GridLayout,包含三个按钮,右边在JLabel里显示一幅图画,按钮控制条。左边又使用JLabel是否显示滚动/test9_7importimportimportimportimportjava.awt.Border

26、Layout;java.awt.Button;java.awt.Container;java.awt.GridLayout;java.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.

27、swing.ScrollPaneConstants;publicclasstest97extendsJFrameimplementsActionListenerprivateJPaneljPanel;/左边panel框privateButtonbutton1;privateButtonbutton2;privateButtonbutton3;privateJScrollPanejscrollPane;/右边滚动框privateJLabellabel;/滚动框中的标签publicImageIconpicture=null;/标签中的图标publicbooleanwhetherCroll=true

28、;/用于切换滚动条的显示publicvoidinit()JFramejFrame=newJFrame("练习使用JscrollPane");Containerpane=jFrame.getContentPane();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/定义左边镶板JPanel框和三个按钮jPanel=newJPanel(newGridLayout(3,1,0,30);button1=newButton("滚动");button1.addActionListener(this);butt

29、on2=newButton("试试");button2.addActionListener(this);button3=newButton("退出");button3.addActionListener(this);jPanel.add(button1);jPanel.add(button2);jPanel.add(button3);/读取图片作为图标picture=newImageIcon("D:/image/fuck.jpg/");/将图标赋给标签labellabel=newJLabel(picture);/定义滚动框,总是显示滚

30、动条jscrollPane=newJScrollPane(label,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);pane.add(jPanel,BorderLayout.WEST);pane.add(jscrollPane,BorderLayout.EAST);/排版显示jFrame.pack();jFrame.setVisible(true);OverridepublicvoidactionPerformed(ActionEvente)/TODO

31、Auto-generatedmethodstubif(e.getActionCommand()="滚动")if(whetherCroll)jscrollPane.setVerticalScrollBarPolicy(JScrollPane.LBAR_NEVER);/垂直不显示jscrollPane.setHorizontalScrollBarPolicy(JScrollPane.CROLLBAR_NEVER);/水平不显示whetherCroll=false;elsejscrollPane.setVerticalScrollBarPolicy(JScrollPane.LBA

32、R_ALWAYS);/垂直显示jscrollPane.setHorizontalScrollBarPolicy(JScrollPane.CROLLBAR_ALWAYS);/水平显示whetherCroll=true;if(e.getActionCommand()="试试")JOptionPane.showMessageDialog(this,"oh,Fuckyourteacher?yealgood!VERTICAL_SCROLHORIZONTAL_SVERTICAL_SCROLHORIZONTAL_S);if(e.getActionCommand()="

33、退出")System.exit(0);publicstaticvoidmain(Stringargs)newtest9_7().init();运行结果:显示滚动条点击“滚动”按钮后,没显示滚动条此项就会跑到另外一个JList8 .练习使用JList建立两个JList,双击其中任何一个中的某一项,中。/test9_8importjava.awt.Container;importjava.awt.GridLayout;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.D

34、efaultListModel;importjavax.swing.JFrame;importjavax.swing.JList;publicclasstest98extendsJFrameimplementspublicJFramejFrame;publicJListjList1;publicJListjList2;publicDefaultListModellistModel1;publicDefaultListModellistModel2;publicvoidinit()JFramejFrame=newJFrame("练习使用List"Containerpane=j

35、Frame.getContentPane();pane.setLayout(newGridLayout(1,2);MouseListener);jFrame.setDefaultCloseOperation(JFrame.listModel1=newDefaultListModel。;listModel1.addElement("First");listModel1.addElement("Second");listModel1.addElement("Third");listModel2=newDefaultListModel。;l

36、istModel2.addElement("one");listModel2.addElement("two");listModel2.addElement("three");jList1=newJList(listModel1);jList2=newJList(listModel2);jList1.addMouseListener(this);jList2.addMouseListener(this);pane.add(jList1);pane.add(jList2);EXIT_ON_CLOSE);jFrame.pack();jFr

37、ame.setVisible(true);OverridepublicvoidmouseClicked(MouseEvente)/TODOAuto-generatedmethodstubif(e.getSource()=jList1)intindex=jList1.locationToIndex(e.getPoint();Objecto=jList1.getModel().getElementAt(index);listModel2.addElement(o);if(e.getSource()=jList2)intindex=jList2.locationToIndex(e.getPoint(

38、);Objecto=jList2.getModel().getElementAt(index);listModel1.addElement(o);OverridepublicvoidmousePressed(MouseEvente)/TODOAuto-generatedmethodstubOverridepublicvoidmouseReleased(MouseEvente)/TODOAuto-generatedmethodstubOverridepublicvoidmouseEntered(MouseEvente)/TODOAuto-generatedmethodstubOverridepu

39、blicvoidmouseExited(MouseEvente)/TODOAuto-generatedmethodstubpublicstaticvoidmain(String口args)newtest9_8().init();运行结果:JComboBox9 .练习使用JComboBox。包括一个JLable一个JComboBox,可以通过输入或者选择中的某一项来控制JLable中文字的大小。/test9_9importjava.awt.Container;importjava.awt.Font;importjava.awt.GridLayout;importjava.awt.event.It

40、emEvent;importjava.awt.event.ItemListener;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;publicclasstest99extendsJFrameimplementsItemListenerpublicJFramejFrame;privateprivateJLabeljLabel;JComboBoxjComboBox;privateStringfontSize="8&quo

41、t;,"14""20","28","32","40"publicvoidinit()jFramenewJFrame(Containercontainer=container.setLayout("练习ComboBox");jFrame.getContentPane();newGridLayout(2,1);jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jLabelnewJLabel("你好吗?"

42、);jLabel.setFont(newFont(""jComboBox=newJComboBox(,0,10);fontSize/设置字体大小);jComboBox.setEditable(jComboBox.addItemListener(true);/设置复选框可以输入this);/添加ItemListener监听/添加两个组件container.add(jLabel);container.add(jFrame.pack();jComboBox);/排版jFrame.setVisible(true);/显示publicvoiditemStateChanged(Item

43、Evente)/使用这个判断的目的的是为了避免触发事件总是执行两次的问题if(e.getStateChange()=ItemEvent.SELECTED)tryStrings=jComboBox.getSelectedItem().toString();intintFontSize=Integer.parseInt(s);jLabel.setFont(newFont("",0,intFontSize);/System.out.println(intFontSize);catch(NumberFormatExceptionr)JOptionPane.showMessageDi

44、alog(this,"请输入整数");publicstaticvoidmain(Stringargs)newtest9_9().init();运行结果:r"I1p博TConnboEcyx=回,曰I你好吗?2010 .练习使用JTabla包括姓名、学号、语文成绩、数学成绩、总分五项,单击总分会自动将语文数学成绩相加。importjava.awt.event.*;importjavax.swing.*;importjavax.swing.table.*;implementsMouseListenerpublicclassTest9_10extendsJFramepri

45、vateJTablejTable;newString("林楚金"),"语文成绩",new"总分",newString("点击出"col2"privateObject叩cellData="姓名"学号",newString("200905"),String("86"),"数学成绩",newString("96"),总分");privateString口columnNames="co

46、l1"publicTest9_10()DefaultTableModelmodel=newDefaultTableModel(cellDatacolumnNames)publicbooleanisCellEditable(introw,intcolumn)returnfalse;jTable=newJTable(model);jTable.addMouseListener(this);this.add(jTable);this.setTitle("表格?M示");this.setSize(300,350);this.setLocation(200,200);thi

47、s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);publicvoidmouseClicked(MouseEvente)DefaultTableModeltableModel=(DefaultTableModel)jTable.getModel();introw=jTable.getSelectedRow();intcolumn=jTable.getSelectedColumn();if(row=4&&column=1)/Stringyuwen=(String)tableModel.ge

48、tValueAt(2,column);语文成绩Stringshuxue=(String)tableModel.getValueAt(3,column);/数学成绩Integer.Integercount=parseInt(yuwen)+Integer.parseInt(shuxue);tableModel.setValueAt(count.toString(),row,column);publicvoidmouseEntered(MouseEvente)publicvoidmouseExited(MouseEvente)publicvoidmousePressed(MouseEvente)pu

49、blicvoidmouseReleased(MouseEvente)publicstaticvoidmain(Stringargs)newTest9_10();运行结果:囹表格演示。.旦姓名林密金学号200905语文成绩86蓟学成绕95总分18211 .练习使用对话框。包括一个JLable和两个JButton,按任何一个JButton都会产生一个对话框,按确定后将输入内容在JLable中显示出来。test9_11importjava.awt.Container;importjava.awt.Frame;importjava.awt.GridLayout;importjava.awt.event

50、.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;publicclasstest911extendsFrameimplementsActionListenerJFramejFrame;JButtonjButton1;JButtonjButton2;JLabeljLabel;publicvoidinit()JFramejFrame=newJ

51、Frame("练习使用对话框");Containerpane=jFrame.getContentPane();pane.setLayout(newGridLayout(3,1);jButtonl=newJButton("按钮1");jButtonl.addActionListener(this);jButton2=newJButton("按钮2");jButton2.addActionListener(this);jLabel=newJLabel();jFrame.setDefaultCloseOperation(JFrame.EXI

52、T_ON_CLOSE);pane.add(jButton1);pane.add(jButton2);pane.add(jLabel);jFrame.pack();jFrame.setVisible(true);OverridepublicvoidactionPerformed(ActionEvente)/TODOAuto-generatedmethodstubif(e.getActionCommand()="按钮1"|e.getActionCommand()=按钮2")Strings=JOptionPane.showInputDialog(this,"&

53、quot;,"请输入");jLabel.setText(s);publicstaticvoidmain(String口args)newtest9_11().init();运行结果:(下面的题目有空再做)12 .练习使用JMenu、JFileChooser、JColorChooser。通过菜单可以打开文件选择对话框,来打开某一指定文本文件,通过菜单可打开颜色选择对话框控制显示文本的颜色。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.io.BufferedReader;importj

54、ava.io.FileReader;importjava.io.IOException;ActionListenerpublicclassTest9_12extendsJFrameimplements/文本域privateJTextAreajta=null;/菜单栏privateJMenuBarjmb=null;/菜单栏中的一个菜单项privateJMenujm1=null;/菜单项中的下拉列表privateJMenuItemjmi1=null;privateJMenuItemjmi2=null;/颜色对象选择privateJFileChooserjfc=nullpublicTest9_12()jta=newJTextArea();this.jmb=newJMenuBar();this.jm1=newJMenu("选择");/设置助记符this.jm1.setMnemonic('F');thisthis.jmi1.jmi2=newJMenuItem(=newJMenuItem("打开文件");"选择颜色");/注

温馨提示

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

评论

0/150

提交评论