それで、コンピューター サイエンスのクラスで助けが必要です。私たちはロボットを作成しましたが、ロボットには、彼が「手を差し伸べる」ことができなかった機能が必要です。私のアイデアは、ロボットの目を「つついた」ときに「OW」というテキスト ボックスをロボットに持たせることでした。ただし、テキストを入れるのに問題があります。目の色を変えることはできましたが、目をクリックしてもテキストボックスが表示されないという問題があります。私の問題が何であるかを理解するのを手伝ってくれる人はいますか?
PS コード内の未完成のピザは無視して、まだ作業中です。
/*
* File Name: Test Robot
*
* This programs is going to attempt to make a robot using 3
* rectangles, 2 ovals, and 2 lines and a piece of pizza next to him.
*
*
* 8-28-13
*/
import acm.graphics.*;
import acm.program.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.TextComponent.*;
public class Robot extends GraphicsProgram {
GOval leftEye;
GOval rightEye;
GArc pizzaSlice;
GRect pizzaBottom;
public void init() {
//Start with large gray rectangle as base.
GRect base = new GRect(100,100,300,300);
base.setFilled(true);
base.setColor(Color.GRAY);
add(base);
//Second add two black ovals as eyes.
leftEye = new GOval(150,175,90,75);
leftEye.setFilled(true);
leftEye.setColor(Color.WHITE);
leftEye.setFillColor(Color.BLACK);
add(leftEye);
rightEye = new GOval(250,175,90,75);
rightEye.setFilled(true);
rightEye.setColor(Color.WHITE);
rightEye.setFillColor(Color.BLACK);
add(rightEye);
//Fourth add a white rectangle as the mouth.
GRect mouth = new GRect(175,325,150,50);
mouth.setFilled(true);
mouth.setColor(Color.WHITE);
add(mouth);
//Finally, add two black lines as antennae.
GLine Antennae1 = new GLine(250,100,100,50);
Antennae1.setColor(Color.BLACK);
add(Antennae1);
GLine Antennae2 = new GLine(250,100,400,50);
Antennae1.setColor(Color.BLACK);
add(Antennae2);
//pizza making time baby
pizzaSlice = new GArc(300,100,300,300,0,50);
pizzaSlice.setFilled(true);
pizzaSlice.setColor(Color.YELLOW);
pizzaSlice.setFillColor(Color.RED);
pizzaBottom = new GRect(300,100,600,400);
pizzaBottom.setFilled(true);
pizzaBottom.setColor(Color.YELLOW);
add(pizzaSlice);
//tells the program to pay attention to the mouse events
addMouseListeners();
}
//handles when mouse enters the window
public void mouseEntered(MouseEvent e) {
leftEye.setFillColor(Color.YELLOW);
rightEye.setFillColor(Color.YELLOW);
}
//handles when mouse exits the window
public void mouseExited(MouseEvent e) {
leftEye.setFillColor(Color.BLACK);
rightEye.setFillColor(Color.BLACK);
}
//handles the mouse event when mouse is pressed
public void mousePressed(GPoint pt) {
if (leftEye.contains(pt) || rightEye.contains(pt)){
leftEye.setFillColor(Color.GREEN);
rightEye.setFillColor(Color.GREEN);
TextArea OW = new TextArea("OW!", 100, 100,);
add(OW);
}
}
//handles the mouse event when the mouse is released
public void mouseReleased(GPoint pt) {
leftEye.setColor(Color.BLACK);
rightEye.setColor(Color.BLACK);
}
}