Спасибо Али за ваше предложение.
Я перехожу перекрасить ();метод из класса рисования в класс MyMouseListener.Это прекрасно работало, и Java постоянно перекрашивала изображение,
Глава 14 Задача по программированию на Java номер 2.
Напишите апплет, который рисует дом, показанный слева на рисунке 14-32.Когда пользователь нажимает
на двери или окнах, они должны закрыться.На рисунке справа показан дом с
дверью и закрытыми окнами.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
/**
*
* @author George Beazer
*/
public class Pigment extends JApplet
{
public int x = 0;
public int y = 0;
public static void main(String [] args)
{
}
public Pigment()
{
setBackground (Color.blue);
}
@Override
public void init()
{
setLayout(new FlowLayout());
addMouseListener(new MyMouseListener());
}
@Override
public void paint (Graphics g)
{
super.paint (g);
//System.out.println ("Boolean: " + this.closeDoors);
if (x > 100 && x < 175 && y < 155 && y > 75)
{
g.drawLine (35, 50, 570, 50);
g.drawLine (35, 50, 250, 0);
g.drawLine (250, 0, 570, 50);
g.drawLine (180, 120, 100, 120);
g.drawLine (400, 120, 480, 120);
g.drawLine (140, 75, 140, 154);
g.drawLine (440, 75, 440, 154);
g.drawRect (50, 50, 500, 350);
g.drawRect (100, 75, 80, 80);
g.drawRect (400, 75, 80, 80);
g.drawRect (240, 200, 125, 200);
g.drawOval (330,280, 20, 20);
}
else if (x > 400 && x < 475 && y < 155 && y > 75)
{
g.drawLine (35, 50, 570, 50);
g.drawLine (35, 50, 250, 0);
g.drawLine (250, 0, 570, 50);
g.drawLine (180, 120, 100, 120);
g.drawLine (400, 120, 480, 120);
g.drawLine (140, 75, 140, 154);
g.drawLine (440, 75, 440, 154);
g.drawRect (50, 50, 500, 350);
g.drawRect (100, 75, 80, 80);
g.drawRect (400, 75, 80, 80);
g.drawRect (240, 200, 125, 200);
g.drawOval (330,280, 20, 20);
}
else if (x > 240 && x < 360 && y < 400 && y > 200)
{
g.drawLine (35, 50, 570, 50);
g.drawLine (35, 50, 250, 0);
g.drawLine (250, 0, 570, 50);
g.drawLine (180, 120, 100, 120);
g.drawLine (400, 120, 480, 120);
g.drawLine (140, 75, 140, 154);
g.drawLine (440, 75, 440, 154);
g.drawRect (50, 50, 500, 350);
g.drawRect (100, 75, 80, 80);
g.drawRect (400, 75, 80, 80);
g.drawRect (240, 200, 125, 200);
g.drawOval (330,280, 20, 20);
}
else
{
g.drawLine (35, 50, 570, 50);
g.drawLine (35, 50, 250, 0);
g.drawLine (250, 0, 570, 50);
g.drawRect (50, 50, 500, 350);
g.fillRect (100, 75, 80, 80);
g.fillRect (400, 75, 80, 80);
g.fillRect (240, 200, 125, 200);
}
}
private class MyMouseListener implements MouseListener
{
public void mouseEntered (MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed (MouseEvent e)
{
}
public void mouseReleased (MouseEvent e){}
public void mouseClicked(MouseEvent e)
{
x = e.getX();
y = e.getY();
showStatus( "Mouse at (" + x + "," + y + ")" );
repaint();
}
}
}
Вы можете закрыть эту тему.