Compare commits

..

2 Commits
main ... src

@ -0,0 +1,188 @@
package yjs;
public class MainClass {
public static void main(String[] args) {
new Hua_Rong_Road();
}
}
import java.awt.Color;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Hua_Rong_Road extends JFrame implements ActionListener,
MouseListener, KeyListener {
Person person[] = new Person[10];
JButton left, right, above, below;
JButton restart = new JButton("重新开始");
public Hua_Rong_Road() {
init();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 320, 500);
setVisible(true);
validate();
}
public void init() {
setLayout(null);
add(restart);
restart.setBounds(100, 320, 120, 35);
restart.addActionListener(this);
String name[] = { "曹操", "关羽", "张", "刘", "周", "黄", "兵", "兵", "兵", "兵" };
for (int k = 0; k < name.length; k++) {
person[k] = new Person(k, name[k]);
person[k].addMouseListener(this);
person[k].addKeyListener(this);
add(person[k]);
}
person[0].setBounds(104, 54, 100, 100);
person[1].setBounds(104, 154, 100, 50);
person[2].setBounds(54, 154, 50, 100);
person[3].setBounds(204, 154, 50, 100);
person[4].setBounds(54, 54, 50, 100);
person[5].setBounds(204, 54, 50, 100);
person[6].setBounds(54, 254, 50, 50);
person[7].setBounds(204, 254, 50, 50);
person[8].setBounds(104, 204, 50, 50);
person[9].setBounds(154, 204, 50, 50);
person[9].requestFocus();
left = new JButton();// 四个边界
right = new JButton();
above = new JButton();
below = new JButton();
add(left);
add(right);
add(above);
add(below);
left.setBounds(49, 49, 5, 260);
right.setBounds(254, 49, 5, 260);
above.setBounds(49, 49, 210, 5);
below.setBounds(49, 304, 210, 5);
validate();
}
@Override
public void keyPressed(KeyEvent e) {
Person man = (Person) e.getSource();
if (e.getKeyCode() == KeyEvent.VK_DOWN)
go(man, below);
if (e.getKeyCode() == KeyEvent.VK_UP)
go(man, above);
if (e.getKeyCode() == KeyEvent.VK_LEFT)
go(man, left);
if (e.getKeyCode() == KeyEvent.VK_RIGHT)
go(man, right);
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
public void mousePressed(MouseEvent e) {
Person man = (Person) e.getSource();
int x = -1, y = -1;
x = e.getX();
y = e.getY();
int w = man.getBounds().width;
int h = man.getBounds().height;
if (y > h / 2)
go(man, below);
if (y < h / 2)
go(man, above);
if (x < w / 2)
go(man, left);
if (x > w / 2)
go(man, right);
}
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void go(Person man, JButton direction) {
boolean move = true;
Rectangle manRect = man.getBounds();
int x = man.getBounds().x;
int y = man.getBounds().y;
if (direction == below)
y = y + 50;
else if (direction == above)
y = y - 50;
else if (direction == left)
x = x - 50;
else if (direction == right)
x = x + 50;
manRect.setLocation(x, y);
Rectangle dirctionRect = direction.getBounds();
for (int k = 0; k < 10; k++) {
Rectangle personRect = person[k].getBounds();
if ((manRect.intersects(personRect)) && (man.number != k))
move = false;
}
if (manRect.intersects(dirctionRect))
move = false;
if (move == true)
man.setLocation(x, y);
}
public void actionPerformed(ActionEvent e) {
dispose();
new Hua_Rong_Road();
}
}
package yjs;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JButton;
public class Person extends JButton implements FocusListener {
int number;
Color c = new Color(255, 245, 170);
Font font = new Font("宋体", Font.BOLD, 12);
Person(int number, String s) {
super(s);
setBackground(c);
setFont(font);
this.number = number;
c = getBackground();
addFocusListener(this);
}
@Override
public void focusGained(FocusEvent arg0) {
// TODO Auto-generated method stub
setBackground(Color.red);
}
@Override
public void focusLost(FocusEvent arg0) {
// TODO Auto-generated method stub
setBackground(c);
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save