题目
8 1 6
3 5 7
4 9 2
要求用Applet实现上述魔方阵。窗口中包括提示栏,提示输入0~15之间的奇数;输入框,输入方阵的阶数;按钮;点击则输出魔方阵;画布用于输出结果。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件代码清单如下:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.lang.Math.*;
/*
<applet code="ex10_3.class" width=800 height=400>
</applet>
*/
public class ex10_3 extends Applet implements ActionListener
{
Panel pane=new Panel();
drawWnd dw;
Label 11 = new Label("输入(0~15的奇数): ");
TextField tf1 = new TextField(5);
Button btn = new Button("OK");
int[] [] a=new int[16] [16];
int n=15;
public void init()
{
pane.setLayout(new FlowLayout(FlowLayout.CENTER, 25,5));
pane.add(11);
pane.add(tf1);
pane.add(btn);
pane.addActionListener(this);
add("North",pane);
dw=new drawWnd();
add("South",dw);
}
class drawWnd extends Canvas
{
drawWnd ()
{
setSize(300,300);
setBackground(Color.GRAY);
}
public void paint(Graphics g)
{
g.setColor(Color. GREEN);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
g.drawString(Integer.toString(a[i] [j]),i*20,j*20);
}
}
public void actionPerformed(ActionEvent ae)
}
try{
n=Integer.parseInt (tf1.getText ());
int i=1, j=1;
for (i=1;i<=n;i++)
for (j=1; j<=n; j++)
a[i] [j]=0;
j=n/2+1;
a[i] [j]=1;
for (int k=1; k<=n*n; k++)
{
i--;
j++;
if((i<1)&&(j>n))
{
i=i+2;
j--;
}
else
{
if (i<1)
i=n;
if (j>n)
j=1;
}
if (a[i] [j]==0)
a[i] [j]=k;
else{
i=i+2;
j--;
a[i] [j]=k;
}
}
dw. repaint ();
}
catch (NumberFormatException nfe)
&n
第1题
●试题七
【说明】
下面是一个Applet程序,其功能是将完整的图像显示于Applet的区块中,然后可以通过拖动鼠标让图像随着鼠标拖动的轨迹而移动。
程序运行结果如图5所示。
图5
import java.applet.*;
import java.awt.*;
/*
<applet code="ex4_7.class" width=800 height=400 >
</applet>
*/
public class ex4_7 extends Applet{
private Image iImg;
private int xPos,yPos;
public void init(){
xPos = yPos =(1);
iImg = getImage((2)"ex4_7.jpg");
}
public void paint(Graphics g){
g.drawImage(iImg,xPos,yPos,(3));
}
public boolean(4)(Event e,int x,int y){
xPos = x;
yPos = y;
(5);
return true;
}
}
ex4_7.html
<HTML>
<HEAD>
<TITLE>ex4_7</TITLE>
</HEAD>
<BODY>
<applet code="ex4_7.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第2题
●试题七
【说明】
下面是一个Applet程序,其功能是通过一个按钮控制一个窗口的创建,显示与隐藏,并且以按钮文字作为提示,可以随着窗口的状态改变,即如果窗口出现,则按钮文字为"Hide myFrm",提示用户点击按钮,则隐藏窗口,反之亦然。请将横线处语句补充完整。
程序运行结果如图5所示:
图5
import javA.awt.*;
import javA.applet.*;
/*
<applet code="ex8_7.class" width=800 height=400 >
</applet>
*/
public class ex8_7 extends Applet{
private Frame. frm;
private Button showBtn;
public void init(){
showBtn = new Button("Show Frame" );
(1) ;
}
public boolean action(Event e, Object o ){
if(e.target == showBtn ){
if((2) ){
(3) ;
frm.dispose();
(4) ;
showBtn.setLabel("Show myFrm");
}
else{
frm = new Frame("myFrm" );
frm.resize(200, 150 );
frm.setBackground(Color.gray );
(5) ;
showBtn.setLabel("Hide myFrm");
}
}
return true;
}
}
ex8_7.html
<HTML>
<HEAD>
<TITLE>ex8_7</TITLE>
</HEAD>
<BODY>
<applet code="ex8_7.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第3题
●试题六
【说明】
下面是一个Applet程序,其功能是建立2个文本区域,一个为编辑区,一个为只读区;建立2个按钮,一个实现将编辑区中被鼠标选定的文本内容拷贝到只读区中,一个实现将只读区的全部文本内容清空。
程序运行结果如图3所示。
图3
import javA.awt.*;
import javA.applet.*;
/*
<applet code="ex3_6.class" width=800 height=400 >
</applet>
*/
public class ex3_6 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 );
(1) ;
tArea2 = new TextArea(10, 25 );
(2) ;
okBtn = new Button("Copy" );
clearBtn = (3) ;
add(tArea1 );
add(tArea2 );
add(okBtn );
add(clearBtn );
}
public boolean action(Event e, Object o ){
if(e.target == okBtn )
tArea2.setText((4) );
else if(e.target == clearBtn )
(5) ;
return true;
}
}
ex3_6.html
<HTML>
<HEAD>
<TITLE>ex3_6</TITLE>
</HEAD>
<BODY>
<applet code="ex3_6.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第4题
下面程序构造了一个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);
}
}
第5题
●试题六
【说明】
下面是一个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>
第6题
●试题七
【说明】
下面是一个Applet程序,其功能是从3~100之间(包括3和100)每隔0.5秒显示一个新的数字,如果数字为素数,则显示为灰色,其他为绿色。
程序运行结果如图4所示。
import java.awt.*;
import java.applet.Applet;
/*
<applet code=ex2_7.class width=800 height=400>
</applet>
*/
图 4
public class ex2_7 extends Applet {
public Color color2_7 = Color.black;
private int n2_7 = 3;
public myPrime thPrime2_7;
public void init() {
thPrime2_7 = new myPrime(this);
thPrime2_7.start();
}
public void paint(Graphics g) {
g.setColor(color2_7);
g.drawstring((1) ,50, 50);
}
public int getInt(){
return n2_7;
}
public void setInt(int i){
n2_7=i;
}
}
class myPrime extends Thread {
ex2_7 obj2_7;
myPrime (ex2_7 o) {
this.obj2_7 = o;
}
public boolean isPrime(int n) {
boolean bPrime = true;
int i=2;
if((2))
return false;
while(i<n-1&&bPrime){
if ((3))
bPrime = false;
i++;
}
return bPrime;
}
public void run() {
int i;
for (i = 3;(4); i++) {
if (isPrime(i))
obj2_7.color2_7 = Color.gray;
else
obj2_7.color2_7 = Color.green;
(5);
obj2_7.repaint();
try {
sleep(500);
} catch (InterruptedException ie) {
}
}
}
}
ex2_7.html
<HTML>
<HEAD>
<TITLE>ex2_7</TITLE>
</HEAD>
<BODY>
<applet code="ex2_7.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第7题
●试题六
阅读以下说明和Java代码,将解答写入答题纸的对应栏内。
【说明】
下面是一个Applet程序,其功能是输出已定义好的两个变量x和chr。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
import javA.awt.*;
(1) import javA.Applet;
(2) public class MyApplet implements Applet
{
int x=10;
(3) char chr="R";
Label output1;
Label output2;
(4) private void init()
{
output1=new Label("定义int类型变量"+"x,的初值为"+x);
output2=new Label("定义char类型变量"+"chr,的初值为"+chr);
add(output1);
add(output2);
}
}
<HTML>
<HEAD>
<TITLE>ex34_3</TITLE>
</HEAD>
<BODY>
(5) <applet class="MyApplet.class"
width=400 height=400 >
</applet>
</BODY>
</HTML>
第8题
●试题六
【说明】
下面是一个Applet程序,其功能是在绘图区域中通过鼠标的移动来绘制直线,并且有清除绘图区域按钮,用来清除已经绘制的图像。
程序运行结果如图5所示。
图5
import javA.awt.*;
import javA.applet.*;
/*
<applet code=ex6_7.class width=800 height=400>
</applet>
*/
public class ex6_7 extends Applet{
private Button btn;
private boolean bDraw, bClear;
private int upX, upY,downX, downY;
public void init(){
setLayout(null);
bClear = false;
bDraw = false;
btn = new Button("clear");
btn.reshape(250, 150, 70, 30);
add(btn);
}
public void paint(Graphics g){
if(bClear){
g.clearRect(0, 0, getSize().width, getSize().height);
(1) ;
}
if(bDraw){
g.drawLine((2) );
bDraw = false;
}
}
public void update(Graphics g){
(3) ;
}
public boolean mouseDown(Event event, int x, int y){
downX = x;
downY = y;
return true;
}
public boolean mouseUp(Event event, int x, int y){
upX = x;
upY = y;
(4) ;
repaint();
return true;
}
public boolean action(Event event, Object object){
if ((5) ){
bClear = true;
repaint();
}
return true;
}
}
ex6_7.html
<HTML>
<HEAD>
<TITLE> ex6_7 </TITLE>
</HEAD>
<BODY>
<applet code=" ex6_7.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第9题
下面是一个Apple(程序,其功能是播放动画。要求根据给出的3幅图片设计1个动画。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.applet.*;
import java.awt.image.*;
/*
<applet code="ex24_3.class" width=800 height=400 >
</applet>
*/
public class ex24_3 extends Applet implements Runnable {
Image[] images=new Image[4];
Image image;
int IMG nClick=over(this) title=放大Number=3;
int currentImage=0;
Thread thisThread;
public void init(){
for (int x=0;x<IMG nClick=over(this) title=放大Number;x++){
images[x]= getImage(getCodeBase(),"IMG nClick=over(this) title=放大"+x+".gif");
}
image=images[0];
}
public void paint(Graphics g){
g.drawImage(image[0],0,0,null);
}
public void update(Graphics g){
paint(g);
}
public void start(){
thisThread = new Thread(this);
thisThread.start();
}
public void stop(){
thisThread.stop();
thisThread=null;
}
public void run(){
while(true){
currentImage++;
currentImage=IMG nClick=over(this) title=放大Number;
image=images[IMG nClick=over(this) title=放大Number];
repaint();
try{
thisThread.sleep(100);
}
catch (Exception e){}
}
}
}
ex24_3, html
<HTML>
<HEAD>
<TITLE>ex24_3</TITLE>
</HEAD>
<BODY>
<applet code="ex24_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第10题
[说明]
下面是一个Appkt程序,其功能是从3~100之间(包括3和100)每隔0.5秒显示一个新的数字,如果数字为素数,则显示为灰色,其他为绿色。
程序运行结果如图4所示。
import java. awt. *
import java. applet. Applet
< applet code = ex2_7, class width = 800 height = 400 >
</applet >
public class ex2_7 extends Applet {
public Color color2_7 = Color. black;
private iht n2_7 = 3;
public myPrime thPrime2_7;
public void init() {
thPrime2_7 = new myPrime(this);
thPrime2_7, start();
}
public void paint(Graphics g) {
g, setColor(color2_7 );
g. drawString((1),50,50);
}
public int getlnt() {
return n2_7;
}
public void setlnt (int i) {
n2_7 = i;
}
}
class myPrime extends Thread I
ex2_7 obj2_7;
myPrime (ex2_7 o) {
this. obj2_7 = o;
}
public boolean isPrime(int n){
boolean bPrime = true;
iht i =2;
if((2))
return false;
while(i < n - ]&&bPrime) {
if((3))
bPrime = false;
i++;
}
return bPrime;
}
public void run() {
int i;
for (i = 3; (4);i++) {
if (isPrime(i) )
obj2 _7, color2_7 = Color, gray;
else
obj2_7, color2_7 = Color. green;
(5);
obj2_7, repaint();
try {
sleep(S00);
} catch (InterruptedException ie) {
}
}
} }
ex2_7, html
< HTML >
< HEAD >
<TITLE > ex2_7 </TITLE >
</HEAD >
< BODY >
<appletcode =" ex2_?, class" width =800 height =400 >
</applet >
</BODY >
</HTML >
第11题
【说明】
下面是一个Applet程序,程序的功能是在显示面板上输出字符串。当html页面被其他窗口遮挡后再次显示时,请给出输出结果。
import java.awt.*;
import java. (1). *;
public class MyApplet (2) Applet {
public void (3) (Graphics g) {
g.drawString(tip,20,40);
tip ="I am Java Applet";
}
public void init() {
tip ="welcome"; }
private (4) tip;
}
<html>
<head>
<title> A Simple Applet </title>
</head>
<body>
<applet code="MyApplet.class" width=800 height=400>
</applet>
</body>
</html>
网页输出 (5)
为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!