Я создал эту программу, которая получает координаты мыши, и теперь я хочу добавить mouseClicked, который создает прямоугольник в определенных координатах при нажатии мыши. Но это не работает. Вот мой код:MouseClicked прослушиватель не работает с gui
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class GameSetup extends JPanel implements MouseMotionListener {
public static JFrame njf = new JFrame("Test");
public static int x = 0, y = 0;
public static boolean c = false;
public static void main(String[] args) {
GameSetup gs = new GameSetup();
gs.addMouseMotionListener(gs);
njf.add(gs);
njf.setVisible(true);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
this.setBackground(Color.BLACK);
g.setColor(Color.GREEN);
g.drawRect(150, 75, 200, 100);
g.setColor(Color.ORANGE);
g.drawString("Play", 239, 123);
if (x > 150 && y > 75 && x < 350 && y < 175){
g.drawRect(150, 75, 200, 100);
}
if(x > 150 && y > 75 && x < 350 && y < 175 && c){
g.fillRect(10 , 10 ,100 ,100);
}
}
public GameSetup() {
super();
setSize(500, 500);
njf.setSize(500,500);
njf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
njf.setResizable(false);
njf.setLocationRelativeTo(null);
}
@Override
public void mouseDragged(MouseEvent arg0) {
}
@Override
public void mouseMoved(MouseEvent e) {
x = e.getX();
y = e.getY();
if (x > 0 && y > 0) repaint(); else repaint();
}
public void mouseClicked(MouseEvent ea){
c = true;
}
}
Как я могу сделать эту работу? Thanks
............... Действительно 1+ –