我的作业是
编写一个小程序,绘制图14-32左侧所示的房子。当用户点击门或窗户时,他们应该关闭。右边的图显示了门和窗户关闭的房子。
我基本上想要一个Java Applet,如果用户点击一个矩形,另一个是突然创建和绘制的。
到目前为止,这是我的代码。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class test2 extends JApplet
{
private final int currentX = 0;
public void init()
{
addMouseListener(new MyMouseListener());
}
public void paint (final Graphics g)
{
super.paint (g);
g.drawRect(100, 100, 200, 200);
}
private class MyMouseListener extends MouseAdapter
{
currentX = e.getX();
}
}
答案 0 :(得分:1)
看看Java Tutorial | How to Write a Mouse Listener。它将帮助您确定用户点击的时间和位置。一旦你有了这些(x,y)坐标,你可以检查它们是否位于窗户或门内,如果有,则绘制其他东西。
示例代码:
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
//check if (x,y) lie in a certain rectangle
if(x>100 && x<300 && y>100 && y<300){
//set a variable and repaint
closeDoors = true;
repaint();
}
}
在paint方法中,您需要检查closeDoors
变量是否已设置,如果是,请绘制其他内容。
public void paint (final Graphics g){
super.paint (g);
g.drawRect(100, 100, 200, 200);
if(closeDoors){
g.fillRect(100, 100, 200, 200);
}
}
答案 1 :(得分:0)
当用户点击门窗时,检查鼠标坐标是否位于窗户或门区域内,如果是,则更换打开的门或打开的窗户的图纸通过绘制一个封闭的,然后看起来像:他们应该关闭。
所以,这就是你要做的事情:
提示:您当前的MouseListener实现根本不起作用。您必须覆盖MouseAdapter
中的方法,并将测试放入相应的方法中。