该楼层疑似违规已被系统折叠隐藏此楼查看此楼
问题:上述程序中我们用按钮的名字代表华容道中的人物。JButton上还可以防止图像。请改进程序,使得代表华容道中人物的按钮上都有一服相关的图像。
源代码:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.*;
public class MoveExample {
public static void main(String args[]) {
new Hua_Rong_Road();
}
}
class Person extends JButton implements FocusListener {
int number;
Color c;
Person(int number,String s) {
super(s);
this.number=number;
c=getBackground();
setFont(new Font("宋体",Font.CENTER_BASELINE,14));
addFocusListener(this);
}
public void focusGained(FocusEvent e) {
setBackground(Color.cyan);
}
public void focusLost(FocusEvent e) {
setBackground(c);
}
}
class Hua_Rong_Road extends JFrame implements KeyListener,MouseListener,ActionListener {
Person person[]=new Person[10];
JButton left,right,above,below;
JButton restart=new JButton("重新开始");
Container con;
public Hua_Rong_Road() {
init();
setBounds(100,100,320,360);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void init() {
con=getContentPane();
con.setLayout(null);
con.add(restart);
restart.setBounds(100,5,120,25);
restart.addActionListener(this);
String name[]={"曹操","关羽","张","刘","马","许","兵","兵","兵","兵"};
for(int i=0;i
person[i]=new Person(i,name[i]);
person[i].addKeyListener(this);
person[i].addMouseListener(this);
con.add(person[i]);
}
person[0].setBounds(104,54,100,100);
person[1].setBounds(104,154,100,50);