Java程序设计之网络编程(第2版)各章习题和思考题答案(9)

2020-04-14 18:17

6 如何在Java程序中实现多线程?试简述使用Thread子类和实现Runnable接口两种方法的异同。

解:在Java程序中实现多线程最关键是要定义子线程的操作,即定义子线程的run()方法。具体可以通过派生Thread类的子类或实现Runnable接口两种方式来实现。

派生Thread子类时通过重载父类的方法run()来定义于线程的具体操作,然后在主线程中创建并启动该子类的对象为子线程。

实现了Runnable接口的类必须要实现接口中的run()方法,其中同样定义了子线程的操作。但是这个方法中的子线程不是Thread子类的对象,而是Thread类的对象,在创建Thread类对象时把实现了Runnable接口和run()方法的类作为参数传递给该对象,从而规定它的具体操作。

7 利用多线程技术编写Applet程序,其中包含一个滚动的字符串。字符串从左向右运动,当所有的字符都从屏幕的右边消失后,字符串重新从左边出现并继续向右移动。

解:源程序 ch8_e8_11.java

import java.awt.*;

import java.applet.*;

public class ch8_e8_11 extends Applet implements Runnable

{

final String rollingMessage=\,SAILING,I AM SAILING...\;

Thread m_Draw=null;

int beginX;

public void init()

{

m_Draw=new Thread(this);

}

public void paint(Graphics g)

{

g.drawString(rollingMessage,beginX,40);

}

public void start()

{

m_Draw.start();

try{

Thread.sleep(50);

}catch(InterruptedExceptione){}

}

public void run()

{

try

{

while(true)

{

beginX=++beginX % getWidth();

repaint();

Thread.sleep(100);

}

}

catch(InterruptedException e)

{

}

}

第11章 GUI习题及思考解答

1 JApplet与Applet有何异同?JApplet使用什么缺省布局策略?如何在 JApplet中加入SwingGUI组件?

解:Japplet的缺省布局策略是BorderLayout,Apptet的缺省布局策略是 FlowLayout;在Applet中加入组件可以直接使用Applet自身的add()方法,而在 JApplet中加入组件必须先用getContentPane()获得当前JApplet的容器,然后再调用该容器对象的add()方法。

2 编写一个JApplet程序,包含一个JLabel对象,并显示你的姓名.

解:源程序

import javax.swing.*;

import java.awt.*;

public class ch8_e8_14 extends JApplet

{

JLabel myLbl=new JLabel(\;

public void init()

{

Container c=getContentPane();

c.add(\,myLbl);

} }

3 JButton与Button有何不同?编写一个图形界面的Application程序,包含一个带图标的JButton对象。当用户单击这个按钮时,Application程序把其Erame的标题修改为“单击按钮”。

解:相对于Button,JButton增加了很多实用功能。例如在按钮上增加图标,在鼠标经过或按下时显示不同的效果,显示按钮功能提示等。

源程序

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class ch8_e8_15

{

public static void main(String args[])

{

new MyFrame();

}

}

class MyFrame extends Frame implements ActionListener

{

JButton myButton=new JButton(\;

MyFrame()

{

super(\我的窗口\;

add(\,myButton);

myButton.addActionListener(this);

addWindowListener(new closeWin());

setSize(300,200);

setVisible(true);

}

public void actionPerformed(ActionEvent ae)

{

if(ae.getSource()==myButton)

{

setTitle(\单击按钮!\;

}

}

}

class closeWin extends WindowAdapter

{

public void windowClosing(WindowEvent we)

{

we.getwindow().dispose();

System.exit(0);


Java程序设计之网络编程(第2版)各章习题和思考题答案(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:南京农业大学关于SURE+项目招收博士生和博士后的通知-2016-12-9

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: