返回列表 發帖

[腦力激盪] 鍵盤事件 (四)

本帖最後由 tonyh 於 2021-9-24 20:36 編輯

試完成如畫面所示之視窗程式,視窗中的鱷魚能向左向右自由行走。





pic.zip
  1. import java.awt.event.KeyAdapter;
  2. import java.awt.event.KeyEvent;
  3. import javax.swing.ImageIcon;
  4. import javax.swing.JFrame;
  5. import javax.swing.JLabel;

  6. public class Ch05 extends KeyAdapter{

  7.         JFrame fm;
  8.         ImageIcon bk, ic, l[]=new ImageIcon[10], r[]=new ImageIcon[10];
  9.         JLabel lb, role;
  10.         int x=150, step=0;
  11.        
  12.         Ch05()
  13.         {
  14.                 for(int i=0; i<10; i++)
  15.                 {
  16.                         l[i]=new ImageIcon(Ch05.class.getResource("pic/l"+(i+1)+".png"));
  17.                         r[i]=new ImageIcon(Ch05.class.getResource("pic/r"+(i+1)+".png"));
  18.                 }
  19.                
  20.                 role=new JLabel(r[step]);
  21.                 role.setBounds(x, 120, 117, 102);
  22.                
  23.                 bk=new ImageIcon(Ch05.class.getResource("pic/bk.jpg"));
  24.                 ic=new ImageIcon(Ch05.class.getResource("pic/icon.png"));
  25.                 lb=new JLabel(bk);
  26.                 lb.setBounds(0, 0, 500, 300);
  27.                
  28.                 fm=new JFrame("鱷魚走路");
  29.                 fm.setBounds(100, 100, 500, 320);
  30.                 fm.setIconImage(ic.getImage());
  31.                 fm.setVisible(true);
  32.                 fm.setResizable(false);
  33.                 fm.setLayout(null);
  34.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  35.                 fm.addKeyListener(this);
  36.                 fm.add(role);
  37.                 fm.add(lb);
  38.         }
  39.        
  40.         @Override
  41.         public void keyPressed(KeyEvent e) {
  42.                 step++;
  43.                 if(step==10)
  44.                         step=0;
  45.                 if(e.getKeyCode()==KeyEvent.VK_LEFT)
  46.                 {
  47.                         role.setIcon(l[step]);
  48.                         x-=8;
  49.                 }
  50.                 if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  51.                 {
  52.                         role.setIcon(r[step]);
  53.                         x+=8;
  54.                 }
  55.                 role.setLocation(x, 120);
  56.         }

  57.         public static void main(String[] args) {
  58.                 new Ch05();
  59.         }
  60. }
複製代碼

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見
李宇澤Oscar

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見
hahahahahahahaha

TOP

返回列表