Board logo

標題: 鍵盤事件 (二) [打印本頁]

作者: tonyh    時間: 2020-1-20 19:34     標題: 鍵盤事件 (二)

承上個主題,判斷 Shift 鍵是否被按住,使執行時若搭配 Shift 鍵,則上下左右鍵所造成的方向會顛倒。

  1. import javax.swing.JFrame;
  2. import javax.swing.JLabel;
  3. import javax.swing.ImageIcon;
  4. import java.awt.event.KeyAdapter;
  5. import java.awt.event.KeyEvent;
  6. public class Ch90 extends KeyAdapter{

  7.         JFrame fm;
  8.         JLabel lb;
  9.         ImageIcon ii,ic;
  10.         int x=200, y=100;
  11.        
  12.         Ch90()
  13.         {
  14.                 ic=new ImageIcon(Ch90.class.getResource("pic/icon.png"));
  15.                 ii=new ImageIcon(Ch90.class.getResource("pic/baby.png"));
  16.                
  17.                 lb=new JLabel(ii);
  18.                 lb.setBounds(x, y, 128, 128);
  19.                
  20.                 fm=new JFrame("鍵盤事件");
  21.                 fm.setIconImage(ic.getImage());
  22.                 fm.setBounds(100, 100, 500, 350);
  23.                 fm.setVisible(true);
  24.                 fm.setResizable(true);
  25.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  26.                 fm.setLayout(null);
  27.                 fm.add(lb);
  28.                 fm.addKeyListener(this);
  29.         }
  30.        
  31.         public void keyPressed(KeyEvent e)
  32.         {
  33.                 if(e.isShiftDown()==false)
  34.                 {
  35.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  36.                                 y-=5;
  37.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  38.                                 y+=5;
  39.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  40.                                 x-=5;
  41.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  42.                                 x+=5;
  43.                 }else
  44.                 {
  45.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  46.                                 y+=5;
  47.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  48.                                 y-=5;
  49.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  50.                                 x+=5;
  51.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  52.                                 x-=5;
  53.                 }
  54.                 lb.setLocation(x, y);
  55.         }
  56.        
  57.         public static void main(String[] args) {
  58.                 new Ch90();
  59.         }

  60. }
複製代碼

作者: 洪翊展    時間: 2020-1-20 20:16

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

  6. public class Ch01 implements KeyListener {

  7.         private JFrame fm;
  8.         private ImageIcon icon1,icon2;
  9.         private JLabel lb;
  10.         private int x=100,y=100;
  11.         Ch01()
  12.         {
  13.                 icon1=new ImageIcon(Ch01.class.getResource("pic/icon.png"));
  14.                 icon2=new ImageIcon(Ch01.class.getResource("pic/baby.png"));

  15.                 lb=new JLabel(icon2);
  16.                 lb.setBounds(x, y, 128, 128);

  17.                 fm=new JFrame("按方向建移動圖形");
  18.                 fm.setIconImage(icon1.getImage());
  19.                 fm.setBounds(100, 100, 410, 320);
  20.                 fm.setVisible(true);
  21.                 fm.setResizable(false);
  22.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  23.                 fm.setLayout(null);
  24.                 fm.addKeyListener(this);
  25.                 fm.add(lb);        
  26.         }

  27.         public void keyPressed(KeyEvent e)
  28.         {       if(e.isShiftDown()==true){
  29.                 if(e.getKeyCode()==KeyEvent.VK_UP)
  30.                         y-=5;
  31.                 if(e.getKeyCode()==KeyEvent.VK_DOWN)
  32.                         y+=5;
  33.                 if(e.getKeyCode()==KeyEvent.VK_LEFT)
  34.                         x-=5;
  35.                 if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  36.                         x+=5;
  37.                 lb.setLocation(x, y);
  38.         }
  39.         else
  40.         {
  41.                 if(e.getKeyCode()==KeyEvent.VK_UP)
  42.                         y+=5;
  43.                 if(e.getKeyCode()==KeyEvent.VK_DOWN)
  44.                         y-=5;
  45.                 if(e.getKeyCode()==KeyEvent.VK_LEFT)
  46.                         x+=5;

  47.                 if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  48.                         x-=5;
  49.                 lb.setLocation(x, y);
  50.         }
  51. }


  52. public static void main(String[] args) {
  53.         new Ch01();
  54. }

  55. @Override
  56. public void keyReleased(KeyEvent arg0) {
  57.         // TODO 自動產生的方法 Stub
  58.        
  59. }

  60. @Override
  61. public void keyTyped(KeyEvent arg0) {
  62.         // TODO 自動產生的方法 Stub
  63.        
  64. }
  65. }
複製代碼

作者: 黃宇瑄    時間: 2020-1-20 20:18

  1. import javax.swing.JFrame;
  2. import javax.swing.JLabel;
  3. import javax.swing.ImageIcon;
  4. import java.awt.event.KeyAdapter;
  5. import java.awt.event.KeyEvent;
  6. public class Ch01 extends KeyAdapter{
  7.         JFrame fm;
  8.         JLabel lb;
  9.         ImageIcon ii,ic;
  10.         int x=200, y=100;
  11.         Ch01()
  12.         {
  13.                 ic=new ImageIcon(Ch01.class.getResource("pic/icon.png"));
  14.                 ii=new ImageIcon(Ch01.class.getResource("pic/baby.png"));
  15.                 lb=new JLabel(ii);
  16.                 lb.setBounds(x, y, 128, 128);   
  17.                 fm=new JFrame("鍵盤事件");
  18.                 fm.setIconImage(ic.getImage());
  19.                 fm.setBounds(100, 100, 500, 350);
  20.                 fm.setVisible(true);
  21.                 fm.setResizable(true);
  22.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  23.                 fm.setLayout(null);
  24.                 fm.add(lb);
  25.                 fm.addKeyListener(this);
  26.         }
  27.         public void keyPressed(KeyEvent e)
  28.         {
  29.                 if(e.isShiftDown()==false)
  30.                 {
  31.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  32.                                 y-=5;
  33.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  34.                                 y+=5;
  35.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  36.                                 x-=5;
  37.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  38.                                 x+=5;
  39.                 }else
  40.                 {
  41.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  42.                                 y+=5;
  43.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  44.                                 y-=5;
  45.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  46.                                 x+=5;
  47.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  48.                                 x-=5;
  49.                 }
  50.                 lb.setLocation(x, y);
  51.         }
  52.         public static void main(String[] args) {
  53.                 new Ch01();
  54.         }
  55. }
複製代碼

作者: 洪翊庭    時間: 2020-1-20 20:26

  1. import javax.swing.JFrame;
  2. import javax.swing.JLabel;
  3. import javax.swing.ImageIcon;
  4. import java.awt.event.KeyAdapter;
  5. import java.awt.event.KeyEvent;
  6. public class Ch90 extends KeyAdapter{

  7.         JFrame fm;
  8.         JLabel lb;
  9.         ImageIcon ii,ic;
  10.         int x=200, y=100;
  11.       
  12.         Ch90()
  13.         {
  14.                 ic=new ImageIcon(Ch90.class.getResource("pic/icon.png"));
  15.                 ii=new ImageIcon(Ch90.class.getResource("pic/baby.png"));
  16.                
  17.                 lb=new JLabel(ii);
  18.                 lb.setBounds(x, y, 128, 128);
  19.                
  20.                 fm=new JFrame("鍵盤事件");
  21.                 fm.setIconImage(ic.getImage());
  22.                 fm.setBounds(100, 100, 500, 350);
  23.                 fm.setVisible(true);
  24.                 fm.setResizable(true);
  25.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  26.                 fm.setLayout(null);
  27.                 fm.add(lb);
  28.                 fm.addKeyListener(this);
  29.         }
  30.       
  31.         public void keyPressed(KeyEvent e)
  32.         {
  33.                 if(e.isShiftDown()==false)
  34.                 {
  35.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  36.                                 y-=5;
  37.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  38.                                 y+=5;
  39.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  40.                                 x-=5;
  41.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  42.                                 x+=5;
  43.                 }else
  44.                 {
  45.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  46.                                 y+=5;
  47.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  48.                                 y-=5;
  49.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  50.                                 x+=5;
  51.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  52.                                 x-=5;
  53.                 }
  54.                 lb.setLocation(x, y);
  55.         }
  56.       
  57.         public static void main(String[] args) {
  58.                 new Ch90();
  59.         }

  60. }
複製代碼

作者: 趙一鳴    時間: 2020-1-20 20:38

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


  6. public class Ch90 implements KeyListener
  7. {
  8.         JFrame fm;
  9.         JLabel lb;
  10.         ImageIcon ii,ic;
  11.         int x=200;
  12.         int y=200;
  13.         Ch90()
  14.         {
  15.                 ic=new ImageIcon(Ch90.class.getResource("pic/icon.png"));
  16.                 ii=new ImageIcon(Ch90.class.getResource("pic/baby.png"));
  17.                
  18.                
  19.                 lb=new JLabel(ii);
  20.                 lb.setBounds(x,y, 128,128);
  21.                
  22.                 fm=new JFrame();
  23.                 fm.add(lb);
  24.                 fm.addKeyListener(this);
  25.                 fm.setTitle("鍵盤事件");
  26.                 fm.setBounds(100, 100, 500, 350);
  27.                 fm.setResizable(false);
  28.                 fm.setVisible(true);
  29.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  30.                 fm.setLayout(null);
  31.                 fm.setIconImage(ic.getImage());
  32.                
  33.         }
  34.         public static void main(String[] args)
  35.         {
  36.                 new Ch90();

  37.         }
  38.         @Override
  39.         public void keyPressed(KeyEvent e) {
  40.                 if(!e.isShiftDown())
  41.                 {
  42.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  43.                                 y-=5;
  44.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  45.                                 y+=5;
  46.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  47.                                 x-=5;
  48.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  49.                                 x+=5;
  50.                                
  51.                 }else
  52.                 {
  53.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  54.                                 y+=5;
  55.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  56.                                 y-=5;
  57.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  58.                                 x+=5;
  59.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  60.                                 x-=5;
  61.                 }
  62.                 lb.setLocation(x, y);
  63.         }
  64.         @Override
  65.         public void keyReleased(KeyEvent e) {}
  66.         @Override
  67.         public void keyTyped(KeyEvent e) {}
  68. }
複製代碼

作者: 趙一鳴    時間: 2020-1-20 21:08

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


  6. public class Ch91 implements KeyListener{

  7.         JFrame fm;
  8.         JLabel lb;
  9.         int x=100,y=100;
  10.         ImageIcon ic,pic1,pic2,pic3,pic4;
  11.         Ch91()
  12.         {
  13.                 ic=new ImageIcon(Ch91.class.getResource("pic/android.png"));
  14.                 pic1=new ImageIcon(Ch91.class.getResource("pic/1.png"));
  15.                 pic2=new ImageIcon(Ch91.class.getResource("pic/2.png"));
  16.                 pic3=new ImageIcon(Ch91.class.getResource("pic/3.png"));
  17.                 pic4=new ImageIcon(Ch91.class.getResource("pic/4.png"));

  18.                 lb=new JLabel(pic2);
  19.                 lb.setBounds(x, y, 128, 128);

  20.                 fm=new JFrame("螃蟹走路");
  21.                 fm.setVisible(true);
  22.                 fm.setResizable(false);
  23.                 fm.setLayout(null);
  24.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  25.                 fm.setBounds(100,100, 500, 500);
  26.                 fm.setIconImage(ic.getImage());
  27.                 fm.add(lb);
  28.                 fm.addKeyListener(this);

  29.         }
  30.         public static void main(String[] args)
  31.         {
  32.                 new Ch91();
  33.         }
  34.         @Override
  35.         public void keyPressed(KeyEvent e)
  36.         {
  37.                 if(e.getKeyCode()==KeyEvent.VK_UP)
  38.                 {
  39.                         y-=5;
  40.                         lb.setIcon(pic1);
  41.                         lb.setLocation(x, y);
  42.                 }
  43.                 if(e.getKeyCode()==KeyEvent.VK_DOWN)
  44.                 {
  45.                         y+=5;
  46.                         lb.setIcon(pic4);
  47.                         lb.setLocation(x, y);
  48.                 }
  49.                 if(e.getKeyCode()==KeyEvent.VK_LEFT)
  50.                 {
  51.                         x-=5;
  52.                         lb.setIcon(pic3);
  53.                         lb.setLocation(x, y);
  54.                 }
  55.                 if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  56.                 {
  57.                         x+=5;
  58.                         lb.setIcon(pic2);
  59.                         lb.setLocation(x, y);
  60.                 }

  61.         }
  62.         @Override
  63.         public void keyReleased(KeyEvent e) {}
  64.         @Override
  65.         public void keyTyped(KeyEvent e) {}

  66. }
複製代碼

作者: 戴嘉禾    時間: 2020-2-17 16:11

  1. import javax.swing.JFrame;
  2. import javax.swing.JLabel;
  3. import javax.swing.ImageIcon;
  4. import java.awt.event.KeyAdapter;
  5. import java.awt.event.KeyEvent;
  6. public class Ch90 extends KeyAdapter{

  7.         JFrame fm;
  8.         JLabel lb;
  9.         ImageIcon ii,ic;
  10.         int x=200, y=100;
  11.       
  12.         Ch90()
  13.         {
  14.                 ic=new ImageIcon(Ch90.class.getResource("pic/icon.png"));
  15.                 ii=new ImageIcon(Ch90.class.getResource("pic/baby.png"));
  16.                
  17.                 lb=new JLabel(ii);
  18.                 lb.setBounds(x, y, 128, 128);
  19.                
  20.                 fm=new JFrame("鍵盤事件");
  21.                 fm.setIconImage(ic.getImage());
  22.                 fm.setBounds(100, 100, 500, 350);
  23.                 fm.setVisible(true);
  24.                 fm.setResizable(true);
  25.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  26.                 fm.setLayout(null);
  27.                 fm.add(lb);
  28.                 fm.addKeyListener(this);
  29.         }
  30.       
  31.         public void keyPressed(KeyEvent e)
  32.         {
  33.                 if(e.isShiftDown()==false)
  34.                 {
  35.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  36.                                 y-=5;
  37.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  38.                                 y+=5;
  39.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  40.                                 x-=5;
  41.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  42.                                 x+=5;
  43.                 }else
  44.                 {
  45.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  46.                                 y+=5;
  47.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  48.                                 y-=5;
  49.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  50.                                 x+=5;
  51.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  52.                                 x-=5;
  53.                 }
  54.                 lb.setLocation(x, y);
  55.         }
  56.       
  57.         public static void main(String[] args) {
  58.                 new Ch90();
  59.         }

  60. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2