版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计
第九章课后习题答案drawLine方法。编写一个程序,该程序绘制一个5X9的网络,使用//NetWork类importjava.awt.Graphics;importjavax.swing.JFrame;publicclassNetWorkextendsJFrame{publicNetWork(){//设置窗体大小this.setSize(130,130);//设置窗体大小不可改变this.setResizable(false);ON_CLOSE);//设置默认关闭方式,关闭窗体的同时结束程序this.setDefaultCloseOperation(JFrame.EXIT_//将窗体显示出来this.setVisible(true);drawLine方法。ON_CLOSE);}//横纵格之间都间隔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_1{publicstaticvoidmain(String[]args){newNetWork();}}运行结果:编写一个程序,该程序以不同的颜色随机产生三角形,每个三角形用不同的颜色进行填充。//Triangle类importjava.awt.Color;importjava.awt.Graphics;importjava.util.Random;importjavax.swing.JFrame;publicclassTriangleextendsJFrame{Randomrnd=newRandom();//这里定义4个三角形int[][]x=newint[4][3];int[][]y=newint[4][3];int[][]color=newint[4][3];publicTriangle(){for(inti=0;i<4;i++){for(intj=0;j<3;j++){color[i][j]=rnd.nextInt(255);x[i][j]=rnd.nextInt(i*100+100);//加50像素是为了避免顶到窗体上沿y//加50像素是为了避免顶到窗体上沿}}//窗体标题this.setTitle("随机三角形");//窗体大小this.setSize(500,500);//窗体大小不可变this.setResizable(false);//关闭窗体的同时结束程序this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//显示窗体this.setVisible(true);publicvoidpaint(Graphicsg)(for(inti=0;i<4;i++)(g.setColor(newColor(color[i][0],color[i][1],color[i][2]));g.fillPolygon(x[i],y[i],3);)))//test9_2publicclasstest9_2(publicstaticvoidmain(String口args)(newTriangle();))运行结果:座随机王角形编写一个Applet,该程序请求用户输入圆的半径,然后显示该圆的直径、周长和面积。//test9_3importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclasstest9_3extendsJApplet{//声明5个标签privateJLabeljLabel1privateJLabeljLabel2privateJLabeljLabel3privateJLabeljLabel4privateJLabeljLabel5//1个单行文本private//2个按钮JTextFieldtextOfRadiusprivateuttonutton1;privateuttonutton2;//初始化publicvoidtry{init(){java.awt.EventQueue.invokeAndWait(newRunnable(){publicvoidrun(){initComponents();}});}catch(Exceptionex){ex.printStackTrace();}}jLabel1=newJLabel(jLabel2=newJLabel(jLabel3=newJLabel(jLabel4=newJLabel(//声明8个组件//声明8个组件"输入圆的半径:",SwingConstants.CENTER);"圆的周长:",SwingConstants.CENTER);"",SwingConstants.CENTER);"圆的面积:",SwingConstants.CENTER);jLabel5=newJLabel("",SwingConstants.CENTER);textOfRadius=newJTextField("半径");utton1=newutton("计算”);utton2=newutton("退出");//按钮添加监听器utton1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevt){utton1ActionPerformed(evt);}});//按钮添加监听器utton2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevt){utton2ActionPerformed(evt);}});//声明定义内容面板,并且设置其布局格式为:4行2列格子Containerc=getContentPane();c.setLayout(newGridLayout(4,2));//将8个组件加入到内容面板c.add(jLabell);c.add(textOfRadiusc.add(jLabel2);c.add(jLabel3);c.add(jLabel4);c.add(jLabel5);c.add(utton1);c.add(utton2);}//求周长方法privateStringRound(doublea){doubleperimeter=a*2*3.14;Strings=newString(String.valueOf(perimeter));returns;}//求面积方法privateStringArea(doublea){doublearea=a*a*3.14;Strings=newString(String.valueOf(area));returns;)//点击针算”按钮uttonl触发的方法privatevoidutton1ActionPerformed(ActionEventevt){//捕获单文本输入非数字的异常try{Strings=textOfRadius.getText();//获得单文本字符doublea=Double.valueOf(s).floatValue();//字符转化为双精度jLabel3.setText(Round(a));//标签内容为周长jLabel5.setText(Area(a));//标签内容为面积)catch(NumberFormatExceptionr){输入错误//单文本为非数字弹出提示输入错误”框输入错误JOptionPane.showMessageDialog(this,”请输入数字类型”,”",JOptionPane.WARNING_MESSAGE);textOfRadius.setText("");))//点击退出”按钮utton2触发的方法publicvoidutton2ActionPerformed(ActionEventevt){System.exit(0);))运行结果:运行结果:编译text9_3.java产生字节码文件test9_3.class,接下来需要编写一个HTM顷件text9_3.html来嵌入text9_3.class,代码如下:<html><appletcode="test9_3.class"></applet></html>将test9_3.html文件和test9_3.class文件放在同一个目录下,在浏览器中打开这个test9_3.html文件,实现的效果如下:D:\y<iorktpachitier\bin\test9_3,him1-00°£D:\tvorkspacitler'\bin■1.0EM婀蛤6.28画嗣面积:玷4退出编写一个Applet,向其输入五个数,然后以条形图(bargraph)的形式来表示这些数。编写一个绘制圆形的程序,当鼠标在绘制区域中单击时,该正方形的左上角顶点应准确的跟随鼠标光标移动,重绘该圆形。//MyJFrame类importimportimportjava.awt.Graphics;java.awt.event.MouseEvent;java.awt.event.MouseListener;importjavax.swing.JFrame;publicclassMyJFrameextendsJFrameimplementsMouseListener{intx=50;inty=50;intradius=50;publicMyJFrame()(this.setTitle("绘制圆形");this.setSize(200,200);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.addMouseListener(this);this.setVisible(true);publicclass}publicvoidpaint(Graphicsg)(g.drawOval(x,y,radius,radius);}publicvoidmouseClicked(MouseEvente)(//TODOAuto-generatedmethodstubthis.x=e.getX();this.y=e.getY();this.repaint();System.out.println("x:"+e.getX()+"\ny:"+e.getY());}publicvoidmouseEntered(MouseEvente)(//TODOAuto-generatedmethodstub}publicvoidmouseExited(MouseEvente)(//TODOAuto-generatedmethodstub}publicvoidmousePressed(MouseEvente)(//TODOAuto-generatedmethodstub}publicvoidmouseReleased(MouseEvente)(//TODOAuto-generatedmethodstub//test9_5publicclasstest9_3(publicstaticvoidmain(String[]args)(newMyJFrame();运行结果:编写一个“猜数”程序:该程序随机在1到100的范围内选择一个供用户猜测的整数,然后改程序显示提示信息,要求用户输入一个1到100之间的整数,根据输入偏大、偏小、正确,程序将显示不同的图标。//GuessNumber类importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.Random;importjavax.swing.utton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JTextField;importjavax.swing.SwingConstants;publicclassGuessNumberextendsJFrameimplementsActionListener(intnumberOfRandom;//游戏程序随机数intnumberOfUser;//玩家输入整数JLabellabel1;//标签1:输入一个1到100之间的整数"JLabellabel2;//标签2:提示”JLabellabel3;//标签3:提示的内容(偏大、偏小、正确)uttonbuttonOfSure;//确定按钮uttonbuttonOfExit;//退出按钮JTextFieldjTextField;//猜数输入单行文本框publicvoidinit()(//窗体的定义this.setTitle("这是一个猜数游戏");this.setSize(400,120);this.setResizable(false);this.setLayout(newGridLayout(3,2));this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//随机数Randomrandom=newRandom();numberOfRandom=random.nextInt(100);//各组件的定义label1=newJLabel("请输入一个1到100之间的整数:");label2=newJLabel("提示:",SwingConstants.CENTER);label3=newJLabel("猜猜看");buttonOfSure=newutton("确定");this.getRootPane().setDefaultButton(buttonOfSure);//触发’确定”按钮buttonOfSure.addActionListener(this);buttonOfExit=newutton("退出");buttonOfExit.addActionListener(this);jTextField=newJTextField("输入");//窗体加入各组件this.add(label1);this.add(jTextField);this.add(label2);this.add(label3);this.add(buttonOfSure);this.add(buttonOfExit);//显示窗体this.setVisible(true);System.out.println(numberOfRandom});//偷偷看看随机数,默认用户按下回车键哈哈//事件处理publicvoideventHandle()(//捕获非整型输入异常try(numberOfUser=Integer.parseInt(jTextField.getText());//获得用户输入数if(numberOfUser<1||numberOfUser>100){JOptionPane.showMessageDialog(this,”请输入1到100之间的整数”);}else{if(numberOfUser>numberOfRandom){label3.setText("偏大");jTextField.requestFocus();//清空文本框并使重新获得焦点}if(numberOfUser<numberOfRandom){label3.setText("偏小");jTextField.requestFocus();}if(numberOfUser==numberOfRandom){label3.setText("恭喜你,答对了。”);jTextField.requestFocus();}}}catch(NumberFormatExceptione){JOptionPane.showMessageDialog(this,”请输入整数","输入错误”,JOptionPane.WARNING_MESSAGE);jTextField.requestFocus();}}//按钮触发选择publicvoidactionPerformed(ActionEvente){if(e.getActionCommand()=="确定"){this.eventHandle();}if(e.getActionCommand()=="退出”){System.exit(0);}}publicstaticvoidmain(String[]args){newGuessNumber().init();}运行结果:7.练习使用JscrollPane。使用BorderLayout将JFrame布局分为左右两块;左边又使用GridLayout,包含三个按钮,右边在JLabel里显示一幅图画,按钮控制JLabel是否显示滚动条。//test9_7importjava.awt.BorderLayout;importjava.awt.Button;importjava.awt.Container;importjava.awt.GridLayout;importjava.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.swing.ScrollPaneConstants;publicclasstest97extendsJFrameimplementsActionListener{privateJPaneljPanel;//左边panel框privateButtonbutton1;privateButtonbutton2;privateButtonbutton3;privateJScrollPanejscrollPane;//右边滚动框privateJLabellabel;//滚动框中的标签publicImageIconpicture=null;//标签中的图标publicbooleanwhetherCroll=true;//用于切换滚动条的显示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(thisbutton2=newButton("试试");button2.addActionListener(thisbutton3=newButton("退出");button3.addActionListener(thisjPanel.add(button1);jPanel.add(button2);jPanel.add(button3);//读取图片作为图标picture=newImageIcon("D:/image/fuck.jpg/");//将图标赋给标签labellabel=newJLabel(picture);//定义滚动框,总是显示滚动条jscrollPane=newJScrollPane(label,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);//将左右两边的中间容器放弃JFrame中pane.add(jPanel,BorderLayout.WEST);pane.add(jscrollPane,BorderLayout.EAST);//排版显示jFrame.pack();jFrame.setVisible(true);)@OverridepublicvoidactionPerformed(ActionEvente)(//TODOAuto-generatedmethodstubif(e.getActionCommand()=="滚动"){VERTICAL_SCROLLBARHORIZONTAL_SCROLif(whetherCroll){jscrollPane.setVerticalScrollVERTICAL_SCROLLBARHORIZONTAL_SCROL_NEVER);//垂直不显示jscrollPane.setHorizontalScrollBarPolicy(JScrollPane.LBAR_NEVER);//水平不显示whetherCroll=false;VERTICAL_SCROLLBARHORIZONTAL_SCROL)else{jscrollPane.setVerticalScrollVERTICAL_SCROLLBARHORIZONTAL_SCROL_ALWAYS);//垂直显示jscrollPane.setHorizontalScrollBarPolicy(JScrollPane.LBAR_ALWAYS);//水平显示whetherCroll=true;))if(e.getActionCommand()=="试试"){JOptionPane.showMessageDialog(this,”oh,,,Fuckyourteacher?yealgood!");)if(e.getActionCommand()=="退出”){System.exit(0);))publicstaticvoidmain(String[]args){newtest9_7().init();))运行结果:显示滚动条国携习健用EcpISw=■回浅点击“滚动”按钮后,没显示滚动条8.练习使用JLisE建立两个JList,双击其中任何一个中的某一项,此项就会跑到另外一个JList中。//test9_8importjava.awt.Container;importjava.awt.GridLayout;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.DefaultListModel;importjavax.swing.JFrame;importjavax.swing.JList;publicclasstest98extendsJFrameimplementspublicJFramejFrame;publicJListjList1;publicJListjList2;publicDefaultListModellistModel1;publicDefaultListModellistModel2;publicvoidinit(){JFramejFrame=newJFrame("练习使用List"Containerpane=jFrame.getContentPane();pane.setLayout(newGridLayout(1,2));MouseListener{);jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);listModel1=newDefaultListModel();listModel1.addElement("First");listModel1.addElement("Second");listModel1.addElement("Third");listModel2=newDefaultListModel();listModel2.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);jFrame.pack();jFrame.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());Objecto=jList2.getModel().getElementAt(index);listModel1.addElement(o);}}@OverridepublicvoidmousePressed(MouseEvente)(//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseReleased(MouseEvente)(//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseEntered(MouseEvente)(//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseExited(MouseEvente)(//TODOAuto-generatedmethodstub}publicstaticvoidmain(String[]args)(newtest9_8().init();}运行结果:,咨习隧用Li砒〔口I回IFirstoneSecondtwoThirdthreethreeFirstFirstS&conriFirstthre&FirstFirstSecond9.练习使用JComboBox。包括一个JLables一个JComboBox,可以通过输入或者选择JComboBox中的某一项来控制JLable中文字的大小。//test9_9importjava.awt.Container;importjava.awt.Font;importjava.awt.GridLayout;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;publicclasstest99extendsJFrameimplementsItemListener{publicJFramejFrame;privateJLabeljLabel;privateJComboBoxjComboBox;privateString[]fontSize={"8","14","20","28","32","40"};publicvoidjFrame=newJFrame(Containercontainer=container.setLayout("练习ComboBox");jFrame.getContentPane();newGridLayout(2,1));publicvoidjFrame=newJFrame(Containercontainer=container.setLayout("练习ComboBox");jFrame.getContentPane();newGridLayout(2,1));jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jLabel=newJLabel(jLabel.setFont(newFont(""jComboBox=newJComboBox("你好吗?");,0,10));fontSizejComboBox.setEditable(jComboBox.addItemListener(//添加两个组件container.add(container.add(true//设置字体大小););//设置复选框可以输入this);//添加ItemListener监听jFrame.pack();jFrame.setVisible(//jLabel);jComboBox排版true);//);显示}publicvoiditemStateChanged(ItemEvente)(//使用这个判断的目的的是为了避免触发事件总是执行两次的问题if(e.getStateChange()==ItemEvent.SELECTED)(try(Strings=jComboBox.getSelectedItem().toString();intintFontSize=Integer.parseInt(s);jLabel.setFont(newFont("",0,intFontSize));//System.out.println(intFontSize);}catch(NumberFormatExceptionr)(JOptionPane.showMessageDialog(this,”请输入整数");}}}publicstaticvoidmain(String[]args)(newtest9_9().init();}}运行结果:筹习ComboBoJ口..回.r你好吗?20▼Vj练习使用JTable包括XX、学号、语文成绩、数学成绩、总分五项,单击总分会自动将语文数学成绩相加。练习使用对话框。包括一个JLable和两个utton,按任何一个utton都会产生一个对话框,按确定后将输入内容在JLable中显示出来。//test9_11importjava.awt.Container;importjava.awt.Frame;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListene
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版生物制药技术转让合同
- 2024软件运维服务合同范本:大数据处理专项版3篇
- 2024年冬至节的文案(14篇)
- 2024版笔译服务协议详细条款范本版
- 2025年度农产品展销会摊位租赁协议3篇
- 2024环保型化工产品研发合作合同
- 政府采购知识培训课件
- 读图时代-漫谈摄影知到智慧树章节测试课后答案2024年秋广东技术师范大学
- 出海人才规划与管理研究-全球远航人才先行
- 2024版民间借款担保人合同范本
- 【头颈】颈动脉CTA及MRA评价课件
- 寒假安全教育
- 2024年度工程建设项目安全评价合同2篇
- 《飞机操纵面》课件
- 电力行业安全风险管理措施
- 商业咨询报告范文大全
- 小学一年级数学20以内的口算题(可直接打印A4)
- 肿瘤放射治疗体位固定技术
- 监理报告范本
- 店铺交割合同范例
- 新生儿心脏病护理查房
评论
0/150
提交评论