Java语言程序的设计郑莉课后习题答案.docx
- 文档编号:10461326
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:50
- 大小:320.51KB
Java语言程序的设计郑莉课后习题答案.docx
《Java语言程序的设计郑莉课后习题答案.docx》由会员分享,可在线阅读,更多相关《Java语言程序的设计郑莉课后习题答案.docx(50页珍藏版)》请在冰豆网上搜索。
Java语言程序的设计郑莉课后习题答案
1•编写一个程序,该程序绘制一个
Java语言程序设计
第九章课后习题答案
5X9的网络,使用drawLine方法。
//Network类
importjava.awt.Graphics;
importjavax.swing.JFrame;
publicclassNetWorkextendsJFrame{
publicNetWork(){
//设置窗体大小
this.setSize(130,130);
//设置窗体大小不可改变
this.setResizable(false);
//设置默认关闭方式,关闭窗体的同时结束程序
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//将窗体显示岀来
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_1{
publicstaticvoidmain(String[]args){
newNetWork。
;
}
}
运行结果:
2•编写一个程序,该程序以不同的颜色随机产生三角形,
每个三角形用不同的颜色进行填充。
//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*1OO+1OO);
y[i][j]=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){
}
〃test9_2
publicclasstest9_2{
publicstaticvoidmain(String[]args){newTriangle();
}
}
运行结果:
3•编写一个Applet,该程序请求用户输入圆的半径,然后显示该圆的直径、周长和面积。
〃test9_3
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
publicclasstest9_3extendsJApplet{
//声明5个标签
private
JLabel
jLabel1
private
JLabel
jLabel2
private
JLabel
jLabel3
private
JLabel
jLabel4
private
JLabel
jLabel5
〃1个单行文本
private
JTextField
textOfRadius
〃2个按钮
private
JButton
jButton1;
private
JButton
jButton2;
//初始化
publicvoidinit(){
try{
java.awt.EventQueue.invokeAndWait(newRunnable(){
publicvoidrun(){
initComponents();
}
});
}catch(Exceptionex){
ex.printStackTrace();
}
}
privatevoidinitComponents(){
"输入圆的半径:
",SwingConstants.CENTER);
"圆的周长:
",SwingConstants.CENTER);
"",SwingConstants.CENTER);
jLabel4
=newJLabel(
"圆的面积:
",SwingConstants.
jLabel5
=newJLabel(
"",SwingConstants.
CENTER);
textOfRadius=newJTextField("半径“);
jButton1
=newJButton(
"计算");
jButton2
=newJButton(
"退出");
//按钮添加监听器
jButton1
.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEventevt){
CENTER);
jButton1ActionPerformed(evt);
}
});
//按钮添加监听器
jButton2.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventevt){
jButton2ActionPerformed(evt);
}
});
//声明定义内容面板,并且设置其布局格式为:
4行2列格子
Containerc=getContentPane();
c.setLayout(newGridLayout(4,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);
}
//求周长方法
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;
}
//点击计算”按钮jButton1触发的方法
privatevoidjButton1ActionPerformed(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("");
}
}
//点击退岀”按钮jButton2触发的方法
publicvoidjButton2ActionPerformed(ActionEventevt){
System.exit(0);
}
}
运行结果:
回耳i
Applet
範入逼的半徑:
圃的周怅:
6.28
闿的面积:
3.14
计算
aaa
小程序已启訪&
编译text9_3.java产生字节码文件test9_3.class,接下来需要编写一个
HTML文件text9_3.html来嵌入text9_3.class,代码如下:
vappletcode="test9_3.class">v/applet>
将test9_3.html文件和test9_3.class文件放在同一个目录下,在浏览器中打开这个test9_3.html文件,实现的效果如下:
繆D:
\workspace\hitler\bin\test9_3.html
D:
\workspace\hitler\bin
⑺收藏夹诅&V匚知识库-Hiwud匚+
|§8
VXX裁」…
辅入圈腑半径豈10
圜的6J8
圜的3.14
退出
4•编写一个Applet,向其输入五个数,然后以条形图(bargraph)的形式来表示这些数。
5•编写一个绘制圆形的程序,当鼠标在绘制区域中单击时,该正方形的左上角顶点应准确的跟随鼠标光标移动,重绘该圆形。
//MyJFrame类
import
import
import
java.awt.Graphics;
java.awt.event.MouseEvent;
java.awt.event.MouseListener;
import
javax.swing.JFrame;
MouseListener{
publicclassMyJFrameextendsJFrameimplements
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);
}
publicvoidpaint(Graphicsg){
g.drawOval(x,y,radius,radius);
}
publicvoidmouseClicked(MouseEvente){
//TODOAuto-generatedmethodstub
this.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_5
publicclasstest9_3{
publicstaticvoidmain(String[]args){newMyJFrame();
}
运行结果:
6•编写一个“猜数”程序:
该程序随机在1到100的范围内选择一个供用户猜测的整数,然
后改程序显示提示信息,要求用户输入一个1到100之间的整数,根据输入偏大、偏小、正确,程序将显示不同的图标。
//GuessNumber类
import
import
java.awt.GridLayout;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.SwingConstants;
public
buttonOfSure);//默认用户按
this.getRootPane().setDefaultButton(
下回车键触发确定”按钮
buttonOfSure.addActionListener(this);
buttonOfExit=newJButton("退岀");
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(){
//捕获非整型输入异常
(jTextField.getText());
//获得
try
{
numberOfUser=
Integer.
parseInt
用户输入数
if(numberOfUser
<1||
numberOfUser>100){
JOptionPane.
showMessageDialog
(this,"请输入1到100之间的整
数");
}else{
if(numberOfUser>numberOfRandom){
label3.setText("偏大“);
jTextField.requestFocus();//清空文本框并使重新获得焦点
}
if(numberOfUser 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(); } 运行结果: 左边又使用 JLabel是否显示滚动 7.练习使用JscrollPane。 使用BorderLayout将JFrame布局分为左右两块; GridLayout,包含三个按钮,右边在JLabeI里显示一幅图画,按钮控制 条。 〃test9_7 import 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 javax.swing.JFrame; importjavax.swing.JLabel; importjavax.swing.JOptionPane; importjavax.swing.JPanel; importjavax.swing.JScrollPane; importjavax.swing.ScrollPaneConstants; publicclasstest9_7extendsJFrameimplementsActionListener{ private JPanel jPanel;//左边panel框 private Button button1; private Button button2; private Button button3; private JScrollPanejscrollPane;// 右边滚动框 private JLabel label;//滚动框中的标签 public ImageIcon picture=null;// 标签中的图标 public boolean whetherCroll=true ;//用于切换滚动条的显示 public voidinit(){ 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); button2 =newButton( "试试"); button2 .addActionListener( this); button3 =newButton( "退出“); button3 .addActionListener( this); jPanel .add(button1); jPanel .add(button2); jPanel .add(button3); //读取图片作为图标 picture=newImageIcon("D: /image/fuck.jpg/"); //将图标赋给标签label label=newJLabel(picture); //定义滚动框,总是显示滚动条 jscrollPane=newJScrollPane(label, ScrollPaneConstants. ScrollPaneConstants. VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_ALWAYS); //将左右两边的中间容器放弃JFrame中 pane.add(jPanel,BorderLayout.WES
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言 程序 设计 课后 习题 答案