1
我想給法師類從JLabel的擴展,並實現KeyListner進去,但keyListner不工作 現在MouseListner工作,但KeyListner不工作,爲什麼??? 和另一個問題是,當JFrame的setLayout的爲空,它不顯示(圖像汽車或汽車對象);添加的KeyListener到的JLabel
public class car extends JLabel implements KeyListener,MouseListener{ private ImageIcon imgico;//to set Image icon of car public car(int car_num,boolean line1,Dimension position){ //car_num variable check which of Image of car load //if line1 is true .line 1 else car load in line 2 super(); this.imgico = this.car_load(car_num, line1); super.setIcon(this.imgico); super.setVisible(true); super.setSize(this.imgico.getIconWidth(),this.imgico.getIconHeight()); super.setLocation(position.width, position.height); this.addKeyListener(this); this.addMouseListener(this); } private ImageIcon car_load(int car_num,boolean line1){ //load image icon of car if (car_num == 1 && line1 == true) return (new ImageIcon("Images/cars/01a.PNG")); else if (car_num == 1 && line1 == false) return (new ImageIcon("Images/cars/01b.PNG")); else if (car_num == 2 && line1 == true) return (new ImageIcon("Images/cars/02a.PNG")); else if (car_num == 2 && line1 == false) return (new ImageIcon("Images/cars/02b.PNG")); else if (car_num == 3 && line1 == true) return (new ImageIcon("Images/cars/03a.PNG")); else if (car_num == 3 && line1 == false) return (new ImageIcon("Images/cars/03b.PNG")); else if (car_num == 4 && line1 == true) return (new ImageIcon("Images/cars/04a.PNG")); else if (car_num == 4 && line1 == false) return (new ImageIcon("Images/cars/04b.PNG")); else if (car_num == 5 && line1 == true) return (new ImageIcon("Images/cars/05a.PNG")); else if (car_num == 5 && line1 == false) return (new ImageIcon("Images/cars/05b.PNG")); else if (car_num == 6 && line1 == true) return (new ImageIcon("Images/cars/06a.PNG")); else return (new ImageIcon("Images/cars/06b.PNG")); // by deafult its 06b } @Override public void keyPressed(KeyEvent arg0) { // TODO Auto-generated method stub System.out.println(arg0.getKeyCode()); } @Override public void keyReleased(KeyEvent arg0) { // TODO Auto-generated method stub } @Override public void keyTyped(KeyEvent arg0) { // TODO Auto-generated method stub System.out.println(arg0.getKeyCode()); } @Override public void mouseClicked(MouseEvent arg0) { if (arg0.getSource() == this) System.out.println("Hi"); } @Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } }
在主
JFrame x = new JFrame(); x.setSize(500,500); x.setVisible(true); Dimension v = new Dimension(5,5); car t =new car(1,true,v); x.setLayout(null); x.add(t);
你應該接受一些答案。 – StanislavL