package RaTruong;
import java.awt.Color;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
public class ManHinh extends JFrame {
TapVe tapve=new TapVe();
ConChim conchim=new ConChim();
public ManHinh() {
setSize(280, 500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(400, 100);
add(tapve);
addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
conchim.giamY();
}
});
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
conchim.giamY();
}
});
}
public static void main(String[]args) {
ManHinh mh=new ManHinh();
}
}
```package RaTruong;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class TapVe extends JPanel implements Runnable {
ConChim conchim= new ConChim();
OngNuoc ongnuoc=new OngNuoc();
Background bg=new Background();
public TapVe() {
Thread threadTV =new Thread(this);
threadTV.start();
}
public void paint(Graphics g) {
g.setColor(Color.CYAN);
g.fillRect(0, 0, getWidth(), getHeight());
ongnuoc.ai(g);
g.setColor(Color.GRAY);
g.fillRect(0, 400, getWidth(), getHeight());
g.setColor(Color.GREEN);
g.fillRect(0, 430, getWidth(), getHeight());
conchim.pt(g);
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true) {
repaint() ;
ongnuoc.giamX();
try {
Thread.sleep(5);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ongnuoc.lapdilaplai();
}
}
}
```package RaTruong;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JPanel;
public class OngNuoc extends JPanel {
private static int x1=175,x2=x1+140,x3=x2+140;
private static int h1,h2,h3;
private static boolean h11=false,h21=false,h31=false;
public void ai (Graphics g) {
g.setColor(Color.RED);
g.fillRect(x1, h1, 35, 175);
g.setColor(Color.RED);
g.fillRect(x2, h2, 35,175);
g.setColor(Color.RED);
g.fillRect(x3, h3, 35,175);
}
public void ngaunhien() {
Random rd=new Random();
if(h11==false) {
h1=rd.nextInt(200);
h11=true;}
if(h11==false) {
h2=rd.nextInt(200);h21=true;}
if(h11==false) {
h3=rd.nextInt(200);h31=true;}
}
public void ngaunhien1() {
Random rd=new Random();
if(h11==false) {
h1=rd.nextInt(200);
h11=true;}
h2=rd.nextInt(200);
h3=rd.nextInt(200);
}
public void giamX() {
x1--;
x2--;
x3--;
}
public void lapdilaplai() {
if(x1==-35) {x1=500;
}
if(x2==-35) {x2=500;
}
if(x3==-35) {x3=500;
}
}
}
```package RaTruong;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class ConChim extends JPanel {
int y=150;
public void pt(Graphics g) {
g.setColor(Color.RED);
g.fillRect(70, y, 26, 25);
}
public void tangY() {
y++;
}
public void giamY() {
y=y-50;
}
}
vì sao e đã thêm 2 phương thức addKeyListener(),addMouseListener() khi e Run thử thì khi nhấn 1 Phím bất kỳ hoặc ấn chuột thì Con Chim của e ( hình vuông đỏ) không bay lên ạ