Java语言程序设计(郑莉)第九章课后习题答案.docx

上传人:飞****2 文档编号:54378604 上传时间:2022-10-28 格式:DOCX 页数:36 大小:397.89KB
返回 下载 相关 举报
Java语言程序设计(郑莉)第九章课后习题答案.docx_第1页
第1页 / 共36页
Java语言程序设计(郑莉)第九章课后习题答案.docx_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《Java语言程序设计(郑莉)第九章课后习题答案.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计(郑莉)第九章课后习题答案.docx(36页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

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

2、LOSE);/ 将窗体显示出来this.setVisible(true);/横纵格之间都间隔10像素,起点在(20,40)public void paint(Graphics g)/绘制横向线for(int i=0;i=5;i+)g.drawLine(20, 40+i*10, 110, 40+i*10);/绘制纵向线for(int i=0;i=9;i+)g.drawLine(20+i*10, 40, 20+i*10, 90);/test9_1类public class test9_1 public static void main(String args)new NetWork();运行结果:

3、2.编写一个程序,该程序以不同的颜色随机产生三角形,每个三角形用不同的颜色进行填充。/Triangle类import java.awt.Color;import java.awt.Graphics;import java.util.Random;import javax.swing.JFrame;public class Triangle extends JFrameRandom rnd = new Random();/这里定义4个三角形int x=new int43;int y=new int43;int color=new int43;public Triangle()for(int i=

4、0;i4;i+)for(int j=0;j3;j+)colorij=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

5、);public void paint(Graphics g)for(int i=0;i4;i+)g.setColor(new Color(colori0,colori1,colori2); g.fillPolygon(xi, yi, 3);/test9_2public class test9_2 public static void main(String args)new Triangle();运行结果:3.编写一个Applet,该程序请求用户输入圆的半径,然后显示该圆的直径、周长和面积。/test9_3import javax.swing.*;import java.awt.*;impo

6、rt java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class test9_3 extends JApplet /声明5个标签private JLabel jLabel1;private JLabel jLabel2;private JLabel jLabel3;private JLabel jLabel4;private JLabel jLabel5;/1个单行文本private JTextField textOfRadius;/2个按钮private JButton jButton1;priva

7、te JButton jButton2;/初始化public void init() try java.awt.EventQueue.invokeAndWait(new Runnable() public void run() initComponents();); catch (Exception ex) ex.printStackTrace();private void initComponents() /声明8个组件jLabel1 = new JLabel(输入圆的半径:, SwingConstants.CENTER);jLabel2 = new JLabel(圆的周长:, SwingC

8、onstants.CENTER);jLabel3 = new JLabel(, SwingConstants.CENTER);jLabel4 = new JLabel(圆的面积:, SwingConstants.CENTER);jLabel5 = new JLabel(, SwingConstants.CENTER);textOfRadius = new JTextField(半径);jButton1 = new JButton(计算);jButton2 = new JButton(退出);/按钮添加监听器jButton1.addActionListener(new ActionListene

9、r() public void actionPerformed(ActionEvent evt) jButton1ActionPerformed(evt););/按钮添加监听器jButton2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) jButton2ActionPerformed(evt););/声明定义内容面板,并且设置其布局格式为:4行2列格子Container c = getContentPane();c.setLayout(new GridLayout(4,

10、2);/将8个组件加入到内容面板c.add(jLabel1);c.add(textOfRadius);c.add(jLabel2);c.add(jLabel3);c.add(jLabel4);c.add(jLabel5);c.add(jButton1);c.add(jButton2);/ 求周长方法private String Round(double a) double perimeter = a * 2 * 3.14;String s = new String(String.valueOf(perimeter);return s;/ 求面积方法private String Area(dou

11、ble a) double area = a * a * 3.14;String s = new String(String.valueOf(area);return s;/点击“计算”按钮jButton1触发的方法private void jButton1ActionPerformed(ActionEvent evt) /捕获单文本输入非数字的异常try String s = textOfRadius.getText();/获得单文本字符double a = Double.valueOf(s).floatValue();/字符转化为双精度jLabel3.setText(Round(a);/标

12、签内容为周长jLabel5.setText(Area(a);/标签内容为面积 catch (NumberFormatException r) /单文本为非数字弹出提示“输入错误”框JOptionPane.showMessageDialog(this, 请输入数字类型, 输入错误,JOptionPane.WARNING_MESSAGE);textOfRadius.setText();/点击“退出”按钮jButton2触发的方法public void jButton2ActionPerformed(ActionEvent evt) System.exit(0);运行结果:编译text9_3.jav

13、a产生字节码文件test9_3.class,接下来需要编写一个HTML文件text9_3.html来嵌入text9_3.class,代码如下:将test9_3.html文件和test9_3.class文件放在同一个目录下,在浏览器中打开这个test9_3.html文件,实现的效果如下:4.编写一个Applet,向其输入五个数,然后以条形图(bar graph)的形式来表示这些数。5.编写一个绘制圆形的程序,当鼠标在绘制区域中单击时,该正方形的左上角顶点应准确的跟随鼠标光标移动,重绘该圆形。/MyJFrame类import java.awt.Graphics;import java.awt.ev

14、ent.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JFrame;public class MyJFrame extends JFrame implements MouseListenerint x=50;int y=50;int radius=50;public MyJFrame()this.setTitle(绘制圆形);this.setSize(200,200);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_C

15、LOSE);this.addMouseListener(this);this.setVisible(true);public void paint(Graphics g)g.drawOval(x, y, radius, radius);public void mouseClicked(MouseEvent e) / TODO Auto-generated method stubthis.x=e.getX();this.y=e.getY();this.repaint();System.out.println(x: + e.getX() + ny: + e.getY();public void m

16、ouseEntered(MouseEvent e) / TODO Auto-generated method stubpublic void mouseExited(MouseEvent e) / TODO Auto-generated method stubpublic void mousePressed(MouseEvent e) / TODO Auto-generated method stubpublic void mouseReleased(MouseEvent e) / TODO Auto-generated method stub/test9_5public class test

17、9_3 public static void main(String args)new MyJFrame();运行结果:6.编写一个“猜数”程序:该程序随机在1到100的范围内选择一个供用户猜测的整数,然后改程序显示提示信息,要求用户输入一个1到100之间的整数,根据输入偏大、偏小、正确,程序将显示不同的图标。/GuessNumber类import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Random;import ja

18、vax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.SwingConstants;public class GuessNumber extends JFrame implements ActionListener int numberOfRandom;/ 游戏程序随机数int numberOfUser;/ 玩家输入整数JLabel label1;/

19、标签1:“输入一个1到100之间的整数”JLabel label2;/ 标签2:“提示”JLabel label3;/ 标签3:提示的内容(偏大、偏小、正确)JButton buttonOfSure;/ 确定按钮JButton buttonOfExit;/ 退出按钮JTextField jTextField;/ 猜数输入单行文本框public void init() / 窗体的定义this.setTitle(这是一个猜数游戏);this.setSize(400, 120);this.setResizable(false);this.setLayout(new GridLayout(3, 2);

20、this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 随机数Random random = new Random();numberOfRandom = random.nextInt(100);/ 各组件的定义label1 = new JLabel(请输入一个1到100之间的整数:);label2 = new JLabel(提示:, SwingConstants.CENTER);label3 = new JLabel(猜猜看);buttonOfSure = new JButton(确定);this.getRootPane().setDefau

21、ltButton(buttonOfSure);/ 默认用户按下回车键触发“确定”按钮buttonOfSure.addActionListener(this);buttonOfExit = new JButton(退出);buttonOfExit.addActionListener(this);jTextField = new JTextField(输入);/ 窗体加入各组件this.add(label1);this.add(jTextField);this.add(label2);this.add(label3);this.add(buttonOfSure);this.add(buttonOf

22、Exit);/ 显示窗体this.setVisible(true);System.out.println(numberOfRandom);/ 偷偷看看随机数,哈哈/ 事件处理public void eventHandle() /捕获非整型输入异常try numberOfUser = Integer.parseInt(jTextField.getText();/获得用户输入数if (numberOfUser 100) JOptionPane.showMessageDialog(this, 请输入1到100之间的整数); else if (numberOfUser numberOfRandom)

23、label3.setText(偏大);jTextField.requestFocus();/清空文本框并使重新获得焦点if (numberOfUser numberOfRandom) label3.setText(偏小);jTextField.requestFocus();if (numberOfUser = numberOfRandom) label3.setText(恭喜你,答对了。);jTextField.requestFocus(); catch (NumberFormatException e) JOptionPane.showMessageDialog(this, 请输入整数, 输

24、入错误,JOptionPane.WARNING_MESSAGE);jTextField.requestFocus();/按钮触发选择public void actionPerformed(ActionEvent e) if (e.getActionCommand() = 确定) this.eventHandle();if (e.getActionCommand() = 退出) System.exit(0);public static void main(String args) new GuessNumber().init();运行结果:7.练习使用JscrollPane。使用BorderLa

25、yout将JFrame布局分为左右两块;左边又使用GridLayout,包含三个按钮,右边在JLabel里显示一幅图画,按钮控制JLabel是否显示滚动条。/test9_7import java.awt.BorderLayout;import java.awt.Button;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import ja

26、vax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.ScrollPaneConstants;public class test9_7 extends JFrame implements ActionListener private JPanel jPanel;/左边panel框private Button button1;private Button

27、 button2;private Button button3;private JScrollPane jscrollPane;/右边滚动框private JLabel label;/滚动框中的标签public ImageIcon picture = null;/标签中的图标public boolean whetherCroll = true;/用于切换滚动条的显示public void init() JFrame jFrame = new JFrame(练习使用JscrollPane);Container pane = jFrame.getContentPane();this.setDefa

28、ultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 定义左边镶板JPanel框和三个按钮jPanel = new JPanel(new GridLayout(3, 1, 0, 30);button1 = new Button(滚动);button1.addActionListener(this);button2 = new Button(试试);button2.addActionListener(this);button3 = new Button(退出);button3.addActionListener(this);jPanel.add(button1);j

29、Panel.add(button2);jPanel.add(button3);/ 读取图片作为图标picture = new ImageIcon(D:/image/fuck.jpg/);/ 将图标赋给标签labellabel = new JLabel(picture);/ 定义滚动框,总是显示滚动条jscrollPane = new JScrollPane(label,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);/ 将左右两边的中间容器放弃JFram

30、e中pane.add(jPanel, BorderLayout.WEST);pane.add(jscrollPane, BorderLayout.EAST);/排版显示jFrame.pack();jFrame.setVisible(true);Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (e.getActionCommand() = 滚动) if (whetherCroll) jscrollPane.setVerticalScrollBarPolicy(JScrol

31、lPane.VERTICAL_SCROLLBAR_NEVER);/垂直不显示jscrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);/水平不显示whetherCroll = false; else jscrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);/垂直显示jscrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_S

32、CROLLBAR_ALWAYS);/水平显示whetherCroll = true;if (e.getActionCommand() = 试试) JOptionPane.showMessageDialog(this,oh,Fuck your teacher? yealgood!);if (e.getActionCommand() = 退出) System.exit(0);public static void main(String args) new test9_7().init();运行结果:显示滚动条点击“滚动”按钮后,没显示滚动条8.练习使用JList。建立两个JList,双击其中任何一

33、个中的某一项,此项就会跑到另外一个JList中。/test9_8import java.awt.Container;import java.awt.GridLayout;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.DefaultListModel;import javax.swing.JFrame;import javax.swing.JList;public class test9_8 extends JFrame implements MouseListene

34、r public JFrame jFrame;public JList jList1;public JList jList2;public DefaultListModel listModel1;public DefaultListModel listModel2;public void init() JFrame jFrame = new JFrame(练习使用List);Container pane = jFrame.getContentPane();pane.setLayout(new GridLayout(1,2);jFrame.setDefaultCloseOperation(JFr

35、ame.EXIT_ON_CLOSE);listModel1 = new DefaultListModel();listModel1.addElement(First);listModel1.addElement(Second);listModel1.addElement(Third);listModel2=new DefaultListModel();listModel2.addElement(one);listModel2.addElement(two);listModel2.addElement(three);jList1 = new JList(listModel1);jList2=ne

36、w JList(listModel2);jList1.addMouseListener(this);jList2.addMouseListener(this);pane.add(jList1);pane.add(jList2);jFrame.pack();jFrame.setVisible(true);Overridepublic void mouseClicked(MouseEvent e) / TODO Auto-generated method stubif(e.getSource() = jList1)int index = jList1.locationToIndex(e.getPo

37、int();Object o = jList1.getModel().getElementAt(index);listModel2.addElement(o);if(e.getSource()=jList2)int index = jList2.locationToIndex(e.getPoint();Object o = jList2.getModel().getElementAt(index);listModel1.addElement(o);Overridepublic void mousePressed(MouseEvent e) / TODO Auto-generated metho

38、d stubOverridepublic void mouseReleased(MouseEvent e) / TODO Auto-generated method stubOverridepublic void mouseEntered(MouseEvent e) / TODO Auto-generated method stubOverridepublic void mouseExited(MouseEvent e) / TODO Auto-generated method stubpublic static void main(String args) new test9_8().ini

39、t();运行结果:9.练习使用JComboBox。包括一个JLable、一个JComboBox,可以通过输入或者选择JComboBox中的某一项来控制JLable中文字的大小。/test9_9import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import javax.swing.JComboBox;import javax.swing.JFrame;import j

40、avax.swing.JLabel;import javax.swing.JOptionPane;public class test9_9 extends JFrame implements ItemListener public JFrame jFrame;private JLabel jLabel;private JComboBox jComboBox;private String fontSize = 8, 14, 20, 28, 32, 40 ;public void init() jFrame = new JFrame(练习ComboBox);Container container

41、= jFrame.getContentPane();container.setLayout(new GridLayout(2, 1);jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jLabel = new JLabel(你好吗?);jLabel.setFont(new Font(, 0, 10);/ 设置字体大小jComboBox = new JComboBox(fontSize);jComboBox.setEditable(true);/ 设置复选框可以输入jComboBox.addItemListener(this);/ 添加ItemL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com