1、Java 语言程序设计 第 九 章课后习题答案 1.编写一个程序,该程序绘制一个 5 9 的网络,使用 drawLine 方法。 /NetWork 类 import java.awt.Graphics; import javax.swing.JFrame; public class NetWork extends JFrame public NetWork() / 设置窗体大小 this.setSize(130, 130); /设置窗体大小不可改变 this.setResizable(false); / 设置默认关闭方式,关闭窗体的同时结束程序 this.setDefaultCloseOper
2、ation(JFrame.EXIT_ON_CLOSE); / 将窗体显示出来 this.setVisible(true); /横纵格之间都间隔 10像素,起点在( 20,40) public void paint(Graphics g) /绘制横向线 for(int i=0;i 将 test9_3.html 文件和 test9_3.class 文件放在同一个目录下,在浏览器中打开这个 test9_3.html 文件, 实现的效果如下: 4.编写一个 Applet,向其输入五个数,然后以条形图( bar graph)的形式来表示这些数。 5.编写一个绘制圆形的程序,当鼠标在绘制区域中单击时, 该
3、 正方形的左上角顶点应准确的跟随鼠标光标移动,重绘该圆形。 /MyJFrame 类 import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; public class MyJFrame extends JFrame implements MouseListener int x=50; int y=50; int radius=50; public MyJFrame() this.setTitle(“绘制圆形
4、 “); this.setSize(200,200); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 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 stub this
5、.x=e.getX(); this.y=e.getY(); this.repaint(); System.out.println(“x: “ + e.getX() + “ny: “ + e.getY(); public void mouseEntered(MouseEvent e) / TODO Auto-generated method stub public void mouseExited(MouseEvent e) / TODO Auto-generated method stub public void mousePressed(MouseEvent e) / TODO Auto-g
6、enerated method stub public void mouseReleased(MouseEvent e) / TODO Auto-generated method stub /test9_5 public class test9_3 public static void main(String args) new MyJFrame(); 运行结果: 6.编写一个“猜数”程序:该程序随机在 1 到 100 的范围内选择一个供用户猜测的整数,然后改程序显示提示信息,要求用户输入一个 1 到 100 之间的整数,根据输入偏大、偏小、正确,程序将显示不同的图标。 /GuessNumbe
7、r 类 import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; import javax.swing.SwingC
8、onstants; public class GuessNumber extends JFrame implements ActionListener int numberOfRandom;/ 游戏程序随机数 int numberOfUser;/ 玩家输入整数 JLabel label1;/ 标签 1: “输入一个 1到 100之间的整数 ” JLabel label2;/ 标签 2: “提示 ” JLabel label3;/ 标签 3:提示的内容(偏大、偏小、正确) JButton buttonOfSure;/ 确定按钮 JButton buttonOfExit;/ 退出按钮 JTextF
9、ield jTextField;/ 猜数输入单行文本框 public void init() / 窗体的定义 this.setTitle(“这是一个猜数游戏 “); this.setSize(400, 120); this.setResizable(false); this.setLayout(new GridLayout(3, 2); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); / 随机数 Random random = new Random(); numberOfRandom = random.nextInt(100); / 各
10、组件的定义 label1 = new JLabel(“请输入一个 1到 100之间的整数: “); label2 = new JLabel(“提示: “, SwingConstants.CENTER); label3 = new JLabel(“猜猜看 “); buttonOfSure = new JButton(“确定 “); this.getRootPane().setDefaultButton(buttonOfSure);/ 默认用户按下回车键触发 “确定 ”按钮 buttonOfSure.addActionListener(this); buttonOfExit = new JButton(“退出 “); buttonOfExit.addActionListener(this);