下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,单击按钮,可以在文本区已有的文本基础上追加显示10条“欢迎您,参加Java考试!”信息,并且文本区由滚动条控制文本的上下滚动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件代码清单如下;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
<applet code="ex13_3.class" width=800 height=400>
</applet>
public class ex13_3 extends JApplet
{
JButton jb = new JButton("Add Text");
JTextPane jtp = new JTextPane();
public void init()
{
jb.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
for(int i=1; i<10; i++)
jtp.getText(jtp.setText()+
"欢迎您,参加Java考试!");
}
});
Container cp = getContentPane();
cp.add(new JScrollPane(jtp));
cp.add(BorderLayout. SOUTH, jtp);
}
public static void main(String args[])
{
ex13_3 obj13_3=new ex13_3();
String str = obj13_3.getClass().toString();
if(str.indexOf("class") !=-1)
str=str.substring(6);
JFrame. frm = new JFrame(str);
frm.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});
frm.getContentPane ().addiex13 3);
frm.setSize(300, 400);
frm.setVisible(true);
}
}
ex13_3.html
<HTML>
<HEAD>
<TITLE>ex13_3</TITLE>
</HEAD>
<BODY>
<applet code="ex13_3.class" width=800 height=400>
</applet>
</BODY>
</HTML>
第1题:
下面是一个Applet程序,其功能是统计输入字符串中的每个字符在该串中出现的次数。要求,窗口中有一个文本框作为输入,一个按钮,点击则进行统计,统计结果以图形方式输出。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
import java.awt.*;
import java.applet.*;
import java.1ang*;
public class exl3_3 extends Applet{
private TextField tf;
private Button btn;
public void init(){
tf=new TextField(25);
add(tf);
btn=new Bunon("统计");
add(btn);
resize(250,200);
}
pubhc void paint(Graphics g){
Stling str=tf.genText();
shon cnt[]=new shon[65536];
int i;
int n = 50;
for(i=0;i<65536;i++)
cat[i]=0;
for(i=0;i<str.length();i++)
cnt[i]++;
for(i=0;i<65536;i++)//对数组Cnt[]进行初始化
if(cnt[i]>=0){
g.drawString(i+"出现"+cnt[i]+"次",50,n);
n+=20;
}
}
public boolean action(Eyent e,Object o){
if(o=="统计"){
repaint();
return true;
}
else
return false;
}
}
ex13_3.html
<HTML>
<HEAD>
<TITLE>ex13_3</TITLE>
</HEAD>
<BODY>
<applet code="ex13_3.class"width=800 height=400>
</applet>
</BODY>
</HTML>
第2题:
下面是一个Applet程序,其功能是建立两个文本区域,一个为编辑区,一个为只读区;建立两个按钮,一个实现将编辑区中被鼠标选定的文本内容复制到只读区中,一个实现将只读区的全部文本内容清空。请更正题中带下划线的部分。
注意:不改变程序的结构,不得增行或删行。
import java.awt.*;
import java.applet.*;
/*
<applet code="exl4_3.class" width=800 height=400>
</applet>
*/
public class exl4_3 extends Applet
{
private Button okBtn, clearBtn;
private String strMessage;
private TextArea tArea1, tArea2;
public void init()
{
strMessage="Hello! Welcome to the test! \n" +"Wish you good luck!";
tArea1=new TextArea(10,25);
tArea1.setText(strMessage);
tArea2=new TextArea(10,25);
tArea2.setEditable(true);
kBtn=new Button("Copy");
clearBtn=new Button("Clear");
add(tArea1);
add(tArea2);
add(okBtn);
add(clearBtn);
}
public boolean action(Event e,Object o)
{
if(e.target= =okBtn)
tArea1.setText(tArea2.getSelectedText());
else if(e.target= =clearBtn)
tArea1.setText("");
return ture;
}
}
exl4_3.html
<HTML>
<HEAD>
<TITLE>exl4_3</TITLE>
</HEAD>
<BODY>
<applet code="exl4_3.class"width=800 height=400>
</applet>
</BODY>
</HTML>
第3题:
下面的Applet程序通过内部类处理鼠标单击事件。在小程序中,如果点击鼠标,则在状态栏输出鼠标点击的坐标;如果双击鼠标,则显示一副图片,鼠标单击处为显示图片的左上角坐标,显示图片的宽度为200像素,高度为180像素。请改正程序中的错误(有下划线的语句),使程序执行后,能得到预期的结果。
注意:不改动程序的结构,不得增行或删行。
程序的执行结果为:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/*
<applet code=Hua width=200 height=100>
</applet>
*/
public class Hua extends Applet
{
int xPos,yPos;
int sum;
Image pic;
public void init()
{
addMouseListener(new ClickMouse());
}
public void paint(Graphics g)
{
if(sum==2)
{
g.drawImage(pic,xPos,yPos,200,180,super);
}
}
public class ClickMouse extends MouseAdapter
{
public void mouseClicked (MouseEvent mouse)
{
sum=mouse.getClickCount();
if(sum==2)
{
pic=getImage(getAudioClip(),"hua.jpg");
xPos=mouse.getX();
yPos=mouse.getY ( );
showStatus ("鼠标单击点的坐标: ("+mouse. getX ( ) +" , "+mouse. getY ( ) + ")" );
}
paint ( );
}
}
}
ex37_3.html:
<html>
<head>
<title>A Simple Program</title>
</head>
<body>
<applet code=" Hua.class" width=800 height=400>
</applet>
</body>
</html>
第4题:
下面是一个Applet程序,其功能是有两个按钮,分别为First和Second,以及一个Label构件。要求单击 First时能在Label中显示出"Command:First",而单击Second时能显示出"Command:Second",要求只能重载一次 actionPerformed()方法,请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件代码清单如下:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code=ex04_3.class width=800 height=400>
</applet>
*/
Public class ex04_3 extends Applet implements ActionListener
{
private String str="ok";
private Label l;
private Button btn;
public void init()
{
setLayout(null);
l=new Label(str);
l.reshape(10,10,100,30);
add(l);
btn=new Button("First");
btn.reshape(10,50,60,20);
l.addActionListene(this);
add(btn);
btn=new Button("Second");
btn.reshape(10,100,60,20);
btn.setActionCommand("First");
btn.addActionListener(this);
add(btn);
}
public void actionPerformed(ActionEvent ae)
{
str="Command:"+ae.getActionCommand();
btn.setText(str);
}
}
ex04_3.html
<HTML>
<HEAD>
<TITLE>ex04_3</TITLE>
</HEAD>
<BODY>
<applet code="ex2_3.class" width=800 height=400>
</applet>
</BODY>
</HTML>
第5题:
下面是一个Applet程序,其功能是绘制三维矩形以使该矩形面凹下,并将图像放入凹下的矩形面中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件代码清单如下:
import java.awt.*;
import java.applet.*;
import java.awt.image.*;
import java.util.*;
import java.net.*;
/*
<applet code="ex01_3.class"width=800 height=400>
</applet>
*/
public class ex01_3 extends Applet
{
private Image IMG nClick=over(this) title=放大;
public void init()
{
URL url=getCodeBase();
IMG nClick=over(this) title=放大=getImage(url,"ex01_3.gif");
MediaTracker mt=new MediaTracker();
mt.addImage(IMG nClick=over(this) title=放大,1);
try
{
mt.waitForAll();
} catch(Exception e)
{
e.printStackTrace();
}
setBackground(Color.black);
}
public void paint(Graphics g)
{
int thick=3,x=10,y=10;
g.drawImage(IMG nClick=over(this) title=放大,x,y);
g.setColor(Color.lightGray);
int w = IMG nClick=over(this) title=放大.getWidth(this);
int h = IMG nClick=over(this) title=放大.getHeight(this);
for(int i=0;i<thick;i++)
g.draw3DRect(x,y,w+(a*i),true);
}
}
ex01 3.html
<HTML>
<HEAD>
<TITLE>ex01_3</TITLE>
</HEAD>
<BODY>
<applet code="ex01_3.class"width=800 height=400>
</applet>
</BODY>
</HTML>
第6题:
下面是一个Applet程序,程序的功能输出一个彩色窗体。请改正程序中的错误(有下划线的语句),使程序能输出正确结果。
注意:不改动程序的结构,不得增行或删行。
程序的输出结果为:
import java.awt.*;
import java.awt.image.*;
import java.applet.Applet;
public class MemoryImage extends Applet
{
Image IMG nClick=over(this) title=放大;
public void init()
{
Dimension d=getSize();
int w=d.width,h=d.height;
int pix[ ]=new int[w*h];
int index=0;
for(int y=0;y<h;y++)
for(int x=0;x<w;x++)
{
int red=(x|y)&&0xff;
int green=(x*2|y*2)&0xff;
int blue=(x*4|y*4)&0xff;
pix[index++]=(255<<24)|(red<<16)|(green<<8)|blue;
}
IMG nClick=over(this) title=放大=createImage(new FilteredImageSource(w,h,pix, 0,w));
}
public void paint(Graphics g)
{
g.drawImage(IMG nClick=over(this) title=放大, 0,0,super);
}
}
ex36_3.html:
<html>
<head>
<title>A Simple Program</title>
</head>
<body>
<applet code=" MemoryImage.class" width=800 height=400>
</applet>
</body>
</html>
第7题:
下面是一个Applet程序,其功能是在图形用户界面中实现打印任意行数的杨辉三角形,编写一个含有整型形式参数的方法,此方法打印杨辉三角形,打印的行数由形式参数指定。编写Applet程序接受用户输入的整数,作为实际参数传递并调用上面的方法,要求图形用户界面上包含一个文本区作为输入参数的入口,一个带有纵向滚动条的文本面板作为输出打印结果的区域,一个按钮,点击则完成打印。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/*
<applet code="exll_3.class" width=800 height=400 >
</applet>
*/
public class exll_3 extends JApplet
private JButton jb = new JButton("OK");
private JTextPane jtp = new JTextPane();
private JTextField itl=new JTextField(8);
private int n=15;
public void init() {
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
n=jtf.getText();
jtp.setText( "" );
for(int i = n-1; i>=0;i--){
String s = "";
for(int j = 0; j < i; j++)
s += " ";
for(int j = 0; j < n; j++)
s + = "*";
jtp.setText(s+"\n");
}
}
});
Container cp = getContentPane();
cp.add(BorderLayout.NORTH,jtf);
cp.add(BorderLayout.CENTER,new JScrollPane(jtp));
cp.add(BorderLayout.SOUTH, jb);
}
public static void main(String[] args) {
ex11_3 obj11_3=new ex11_3();
String str = obj11_3.getClass() .toString();
if(str.indexOf("class") != -1)
str= str.substring(6);
JFrame. frm = new JFrame(str);
frm.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit (0);
}
});
frm.getContentPane().add(obj11_3);
frm.setsize(300, 500);
frm.setVisible(true);
}
}
ex11_3.html
<HTML>
<HEAD>
<TITLE>ex11_3</TITLE>
</HEAD>
<BODY>
<applet code="ex11_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第8题:
将下面的程序补充完整。
注意:不改动程序结构,不得增行或删行。
import java.appplet.Applet;
import java.awt.Graphics;
public class ex1 extends Applet
{
public void paint(Graphics______)
{
int i=682;
gap.drawstring(Integer.______(i),20,60);
}
}
第9题:
下面是一个Applet程序,程序的功能是用鼠标画图。本题是通过单击鼠标后画出一个Java字。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意;不改动程序的结构,不得增行或减行。
源程序文件代码清单如下;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code=SimpleHitMouse.java width=800 height=400>
</applet>
*/
public class SimpleHitMouse implements Applet
{
private java.util.Vector points=new java.util.Vector();
public void init()
{
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
points.add(new Point(e.getX(),e.getY())
paint();
}
}
public void update(Graphics g)
repaint(g);
}
public void paint(Graphics g)
{
for(int i=0;i<points.size();i++)
{
Point dot=(Point)points.elementAt(i);
g.drawString("x",dot.x,dot.y);
}
}
public static void main(String args[ ])
{
Frame. fram=new Frame("CelayTree");
SimpleHitMouse dot=new SimpleHitMouse();
dot.init ();
dot.start ();
fram.add ( "Center", dot );
fram.setSize( 400,300 );
fram.addWindowListener( new WindowAdapter(){
public void windowClosing( WindowEvent e )
{
System.exit(0);
}
});
fram.show ();
}
}
ex12_3.html:
<html>
<head>
<title>A Simple Program</title>
</head>
<body>
<applet code=" SimpleHitMouse.class" width=800 height=400>
</applet>
</body>
</html>
第10题:
下面是一个Applet程序,其功能是有2个按钮,分别为First和Second,以及一个Labe1构件。要求点击First时则能在 Labe1中显示出Command:First,而点击Second时则能显示出Command:Second,要求只能使用重载一次actionPerformed()方法。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code=ex2_3.class width=800 height=400>
</applet>
*/
public class ex2_3 extends Applet implements ActionListener {
private String str="ok";
private Labe1 1;
private Button btn;
public void init() {
setLayout(null);
1=new Label(str);
1.reshape(10, 10, 150, 30);
add(1);
btn = new Button("First");
btn.reshape(10, 50, 60, 20);
1.addActionListener(this);
add(btn);
btn = new Button("Second");
btn.reshape(10, 100, 60, 20);
btn.setActionCommand("First");
btn.addActionListener(this);
add(btn);
}
public void actionPerformed(ActionEvent ae) {
str="Command: " +ae.getActionCommand();
btn.setText(str);
}
}
ex2_3.htm1
<HTML>
<HEAD>
<TITLE>ex2_3</TITLE>
</HEAD>
<BODY>
<applet code="ex2_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第11题:
下面是一个Applet程序,其功能是实现对JButton类的扩展,封装成上网助力一样的按钮类,每个按钮对象对应一个 URL地址,点击则访问相应的URL。要求在窗口中从上到下排列3个这样的按钮。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ex28_3 extends JApplet implements ActionListener {
ButtonURL[] btnURL = new ButtonURL[3];
public void init() {
btnURL[0] = new ButtonURL("新浪网","http://www.sina.com.cn/");
btnURL[1] = new ButtonURL("163","http://www.163.com/");
btnURL[2] = new ButtonURL("搜狐","http://www.sohu.com/");
GridLayout gl = new GridLayout(1,3);
getContentPane().setLayout(gl);
for (int i = 0; i < btnURL.length; i++) {
btnURL[i].addActionListener(this);
getContentPane().add(btnURL[i]);
}
}
public void actionPerformed(ActionEvent ae) {
ButtonURL btnClick =ae.getSource();//获取发生事件的对象
try {
URL load = new URL(btnClick.strAddr);
getAppletContext().showDocument(strAddr);
} catch (MalformedURLException e) {
showStatus("Bad URL:" + btnClick.strAddr);
}
}
}
class ButtonURL extends JButton {
String strAddr;
ButtonURL(String strLabel, String strAddress) {
super(strLabel);
strAddr = strAddress;
}
}
ex28_3, html
<HTML>
<HEAD>
<TITLE>ex28_3</TITLE>
</HEAD>
<BODY>
<applet code="ex28_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第12题:
下面是一个Applet程序,其功能是接收用户输入的两个整数,比较它们的大小,并在用户按下“比较”按钮后,将Applet中的显示的“请先输入两个待比较的整数”,改为“两个整数中最大值:x”,x是两个数中的最大值。请改正程序中的错误(有下划线的语句)并将程序填写完整,使程序能输出正确的结果。
注意:不改动程序结构,不得增行或删行。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class FindMax extends Applet______
{
Label result;
TextField in1,in2;
Button btn;
int a=0,b=0,max;
public void int()
{
result=new Label(“请先输入两个待比较的整数”);
in1=new TextField(5);
in2=new TextField(5);
btn=new Button("比较");
add(in1);
add(in2);
add(btn);
add(result);
btn.addActionListener(this);
}
Public void actionPerformed(ActionEvent e)
{
a=in1;
b=in2;
if(a>b)
max=a;
else
max=b;
btn.setText(“两个数中最大值:”+max);
}
}
Findmax.html:
<HTML>
<HEAD>
<TITLE>A Simple Program</TITLE>
</HEAD>
<BODY>
<applet code="FindMax.class"width=800 height=400>
</applet>
</BODY>
</HTML>
第13题:
下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器继续工作。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件代码清单如下。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/*
<applet code="ex19_3.class" width=800 height=400>
</applet>
*/
public class ex19_3 extends JApplet
{
private JTextField jtf=new JTextField(15);
private JButton Hold=new JButton("Hold");
private JButton resume=new JButton("Resume");
private ex19_3th obj19_3th=new ex19_3th();
class ex19_3th extends Thread
{
private int cnt=0;
private boolean bIsHold=false;
public ex19_3th() {start();}
public void hold()
{
bIsHold=true;
}
public synchronized void fauxResume()
{
bIsHold=false;
wait ();
}
public void run()
{
while (true)
{
try {
sleep(150);
synchronized(this)
{
while(bIsHold)
notify();
}
}catch(InterruptedException ie)
{
System.err.println("Interrupted");
}
jtf.setText(cnt);
}
}
}
public void init()
{
Container cp=getContentPane();
cp.setLayout(new FlowLayout());
cp.add(jtf);
Hold.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
obj19_3th.hold ( );
}
});
cp.add(Hold);
resume.addActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
obj19_3th.fauxResume();
}
&n
第14题:
下面是一个Applet程序,其功能是接收用户输入的两个整数,比较它们的大小,并在用户按下“比较大小”按钮后,将 Applet中显示的“请先输入两个待比较的整数”,改为“两个整数中最大值是:x”,x是两个数中的最大值。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/*
<applet code=LookForMax width=800 height=400>
</applet>
*/
public class LookForMax extends Applet implements ActionListener{
Label result ;
TextField inl,in2;
Button btn;
int a=0,b=0,max=0;
public void init()
{
result=new Label ("请先输入两个待比较得整数");
in1=new TextField(5);
in2=new TextField(5);
btn=new Button("比较大小");
add(in1);
add(in2);
add(btn);
add(result);
btn.addActionListener(supper);
}
public void actionPerformed(ActionEvent e){
a=Integer.parseInt(in1);
b=Integer.parseInt(in2);
if(a>b)
max=a;
else
max=b;
result, setText ( "两个数中最大值是:"+max);
}
}
LookFormax.html:
<html>
<head>
<title>A Simple Program</title>
</head>
<body>
<applet code="LookForMax.class" width=800 height=400>
</applet>
</body>
</html>
第15题:
下面是一个Applet程序,其功能是根据公式:y=a*sin(x)绘制正弦曲线。要求窗口中有一个文本区作为曲线峰值a的输入,可以判断输入的数字是否符合要求,一个ok按钮,点击则在画布中绘制曲线,以画布中的横坐标值作为sin()的参数x。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.lang.Math.*;
/*
<applet code="ex18_3.class" width=800 height=400 >
</applet>
*/
public class ex18_3 extends Applet implements ActionListener {
Panel pane=new Panel();
drawWnd dw;
Label 11 = new Label("峰值");
TextField tf1 = new TextField(15);
Button btn = new Button("OK");
private float a=0;
public void init(){
pane.setLayout(new FlowLayout(FlowLayout.CENTER,25,5));
pane.add(11);
pane.add(tf1);
pane.add(btn);
btn.addActionListener(this);
add("North",pane);
dw=new drawWnd();
add("South",dw);
}
class drawWnd extends Canvas {
drawWnd() {
setSize(300,100);
setBackground(Color. GRAY);
}
public void paint(Graphics g) {
g.setColor(Color.GREEN);
for(int i=0;i<getSize().width-1;i++){
int y=0;
int y1=y+(int) (Math.sin(i)*a);
int y2=y1+(int) (a*Math.sin(i+1));
g.drawLine(i,y1,i+1,y2);
}
}
}
public void actionPerformed(ActionEvent ae) {
try{
a=Integer.parseInt(tf1.getText());
dw.repaint();
}
catch(NumberFormatException nfe){
tf1.setText("error!");
}
}
}
ex18_3.html
<HTML>
<HEAD>
<TITLE>ex18_3</TITLE>
</HEAD>
<BODY>
<applet code="ex18_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第16题:
下面是一个Applet程序,其功能是有2个按钮,分别为First和Second,以及一个Label构件。要求单击First时则能在Label中显示出Command: First,而单击Second时则能显示出Command: Second,要求只能使用重载一次actionPerformed()方法。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code=ex3_3.class width=800 height=400>
</applet>
*/
public class ex3_3 extends Applet implements ActionListener
{
private String str="ok";
private Label 1;
private Button btn;
public void init( )
{
setLayout(null);
1=new Label(str);
1.reshape(10,10,150,30);
add(1);
btn=new Button("First");
btn.reshape(10,50,60,20);
1.addActionListener(this);
add(btn);
btn=new Button("Second");
btn.reshape(10,100,60,20);
btn.setActionCommand("First");
btn.addActionListener(this);
add(btn);
}
public void actionPerformed(ActionEvent ae)
{
str="Command:"+ae.getActionCommand( );
btn.setText(str);
}
}
ex3_3.html
<HTML>
<HEAD>
<TITLE>ex3_3</TITLE>
</HEAD>
<BODY>
<applet code="ex3_3.class"width=800 height=400>
</applet>
</BODY>
</HTML>
第17题:
下面是一个Applet程序,其功能是进行整数加法运算,要求有3个文本区域,2个作为输入,一个作为输出,并且有异常处理来判断输入的数字是否符为整型,如果是则进行运算,否则抛出异常并显示于第3个文本区域中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
/*
<applet code="ex17_3.class" width=800 height=400 >
</applet>
*/
public class ex17_3 extends Applet implements ActionListener {
TextField tf1 = new TextField(5);
TextField tf2 = new TextField(5);
TextField tf3 = new TextField(5);
Label 11 = new Label("+");
Label 12 = new Label("=");
Button btn= new Button("相加");
public void init(){
add(11);
add(tf1);
add(tf2);
add(12);
add(tf3);
add(btn);
btn.addActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
try{
int a=Integer.parseInt(tf1.getText());
int b=Integer.parseInt(tf2.getText());
int x = a + b;
tf2.setText(Integer.toString(x));
}
catch(NumberFormatException nfe){
tf3.setText("error!");
}
}
}
ex17_3.html
<HTML>
<HEAD>
<TITLE>ex17_3</TITLE>
</HEAD>
<BODY>
<applet code="ex17_3.class. width=800 height=400 >
</applet>
</BODY>
</HTML>
第18题:
请完成下列Java程序。实例listener是监听器,frm是事件源,fr上发生的事件委托tat进行处理。程序的执行结果是显示一个蓝色的窗口,单击关闭按钮,可关闭窗口。
注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。
源程序文件代码清单如下:
import java.awt.*;
import java.awt.event.*;
public class BlueWindow
{
public static void main(String args[])
{
Frame. frm=new Frame. ("欢迎参加Java考试!");
TheAdapterTest listener=new TheAdapterTest();
frm. ______;
frm.setSize(200,200);
frm.setBackground(Color.blue);
frm. ______;
}
}
class TheAdapterTest extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(1);
}
}
第19题:
下面是一个Applet程序,其功能是分析任意输入的字符串,将字符串中由空格隔开的字串提取并显示出来。要求,窗口中有一个输入文本框,用于接受输入的字符串,一个按钮,点击则开始分析,分析结果用图形方式打印在窗口下面的区域中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.applet.*;
import java.util.StringTokenizer;
public class ex27_3 extends Applet{
private TextField tf;
private Button btn;
public void init(){
tf = new TextField(25);
add(tf);
btn= new Button("分析");
add(btn);
resize(250, 200);
}
public void paint(Graphics g){
String str = tf.getText();
StringTokenizer st = new StringTokenizer(tf);
int n = 80;
while (!st.hasMoreTokens()){
String tem = st.nextToken();
g.drawString(tem, n, 80);
n += 20;
}
}
public boolean action(Event e, Object o){
if (o == "分析") {
repaint();
return true;
}
else
return false;
}
}
ex27_3.html
<HTML>
<HEAD>
<TITLE>ex27_3</TITLE>
</HEAD>
<BODY>
<applet code="ex27_3.class" width=800 height=400
</applet>
</BODY>
</HTML>
第20题:
下面是一个Applet程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件清单如下:
import java.awt.*;
import java.applet.*;
/*
<applet code="ex11_3.class"width=800 height=400>
</applet>
*/
public class ex11_3 extends Applet
{
int[] x = {15,50,100,160,120,190 };
int[] y = {15,100,30, 15, 80, 50 };
public void init()
{
setBackground (Color. lightGray);
}
public void paint (Graphics g)
{
int[] y2 = new int[6];
g. setColor (Color. red);
Rectangle rect = getBounds();
g.drawPolygon (x, y2,6);
for(int i=0; i<6; i++)
y2[i] = y[i] + (rect.height / 2);
g. fillPolygon (x, y, 6);
}
}
ex11_3. html
<HTML>
<HEAD>
<TITLE>ex11_3</TITLE>
</HEAD>
<BODY>
<applet code="ex11_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第21题:
下面是一个Apple(程序,程序的功能是在Applet显示区内画一个动态的、多维的绿色椭圆环。本题主要是通过数学方法sin(),cos()画出一个圆环。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。程序的执行结果:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class YuanHuan extends Applet
{
public void paint(Graphics g)
{
double w=getSize().width/2;
double h=getSize().height/2;
g.getColor(Color.green);
for(double th=0;th<10;th+=0.00003)
{
double r=Math.cos(16*th)+th;
double x=r*Math.cos(th)+w;
double y=r*Math.sin(th)+h;
g.drawOval((int)x-1,(int)y-1,3,3);
}
}
public static void main(String args[ ])
{
Frame. f=new Frame("Draw");
YuanHuan p=new YuanHuan();
p.inti();
p.start();
f.add(p);
f.setSize(400,300);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.out.exit(0);
}
});
f. show ( );
}
}
ex3 3_3. htm1:
<html>
<head>
<title>A Simple Program</title>
</head>
<body>
<applet code=" YuanHuan.class" width=800 height=400>
</applet>
</body>
</html>
第22题:
下面程序构造了一个Swing Applet,在下画线处填入正确的代码。
import javax.swing.*;
import java.awt.*;
public class SwingApplet extends ______ {
JLabel 1=new JLabel("This is a Swing Applet.");
public void init() {
Container contentPane=getContentPane();
contentPane.add(1);
}
}
第23题:
●试题六
【说明】
下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,点击按钮,可以在文本区已有的文本基础上追加显示10条"Welcome to China"信息,并且文本区由滚动条控制文本的上下滚动。
程序运行结果如图4所示。
import javax.swing.*;
import javA.awt.*;
import javA.awt.event.*;
/*
<applet code="ex5_6.class" width=800 height=400 >
</applet>
图4
*/
public class ex5_6 extends JApplet {
JButton jb = new JButton("Add Text");
JTextPane jtp = new JTextPane();
public void init() {
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
for(int i = 1; i < 10; i++)
(1) + "Welcome to China!\n");
}
});
Container cp = (2) ;
cp.add(new JScrollPane(jtp));
cp.add( (3) );
}
public static void main(String[] args) {
ex5_6 obj5_6=new ex5_6();
String str = obj5_6.getClass().toString();
if(str.indexOf("class") !=-1)
str = str.substring (6) ;
JFrame. frm = new JFrame(str);
frm.addWindowListener(new (4) {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
(5) .add(ex5_6);
frm.setSize(300, 400);
frm.setVisible(true);
}
}
ex5_6.html
<HTML>
<HEAD>
<TITLE>ex5_6</TITLE>
</HEAD>
<BODY>
<applet code="ex5_6.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
●试题六
【答案】(1)jtp.setText(jtp.getText()(2)getContentPane()(3)BorderLayout.SOUTH, jb
(4)WindowsAdapter()(5)frm.getContentPane()
【解析】本题主要考查Applet和swing结合进行图形用户界面设计的综合应用。解题关键是掌握swing的基本构件JTextPanel, JButton, JScrollPanel的用法,掌握BorderLayout布局管理器的使用方法,以及熟练掌握最基本的对象概念。本题中,JTextPanel的2个基本的方法,setText()和getText()的功能,熟悉这2个功能,则很容易就能将错误改正;应该是通过BorderLayout布局管理器在窗口的最下方添加一个JButton对象,需要清楚程序中每个对象所对应的类。