Java语言程序的设计郑莉课后习题答案.docx

上传人:b****7 文档编号:10461326 上传时间:2023-02-13 格式:DOCX 页数:50 大小:320.51KB
下载 相关 举报
Java语言程序的设计郑莉课后习题答案.docx_第1页
第1页 / 共50页
Java语言程序的设计郑莉课后习题答案.docx_第2页
第2页 / 共50页
Java语言程序的设计郑莉课后习题答案.docx_第3页
第3页 / 共50页
Java语言程序的设计郑莉课后习题答案.docx_第4页
第4页 / 共50页
Java语言程序的设计郑莉课后习题答案.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

Java语言程序的设计郑莉课后习题答案.docx

《Java语言程序的设计郑莉课后习题答案.docx》由会员分享,可在线阅读,更多相关《Java语言程序的设计郑莉课后习题答案.docx(50页珍藏版)》请在冰豆网上搜索。

Java语言程序的设计郑莉课后习题答案.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1