Board logo

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

作者: tonyh    時間: 2017-6-2 20:04     標題: 鍵盤事件 (二)

本帖最後由 tonyh 於 2019-4-27 13:48 編輯

承上個主題,判斷 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. }
複製代碼

作者: 李知易    時間: 2017-6-2 20:44

  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 Ch92 extends KeyAdapter
  7. {

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

  63. }
複製代碼

作者: 洪振庭    時間: 2017-6-2 20:52

  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 Ch90 implements KeyListener {
  7.         
  8.         private JFrame fm;
  9.         private ImageIcon icon1,icon2;
  10.         private JLabel lb;
  11.         private int x=100,y=100;
  12.         Ch90()
  13.         {
  14.                 icon1=new ImageIcon(Ch90.class.getResource("pic/icon.png"));
  15.                 icon2=new ImageIcon(Ch90.class.getResource("pic/奧尼克西亞.png"));
  16.                  
  17.                 lb=new JLabel(icon2);
  18.                 lb.setBounds(x, y, 128, 128);
  19.                         
  20.                 fm=new JFrame("按方向建移動奧妮克西亞");
  21.                 fm.setIconImage(icon1.getImage());
  22.                 fm.setBounds(100, 100, 410, 320);
  23.                 fm.setVisible(true);
  24.                 fm.setResizable(false);
  25.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  26.                 fm.setLayout(null);
  27.                 fm.addKeyListener(this);
  28.                 fm.add(lb);        
  29.         }

  30.         public void keyPressed(KeyEvent e)
  31.         {
  32.                 if(e.isShiftDown()==false){
  33.                 if(e.getKeyCode()==KeyEvent.VK_UP)
  34.                         y-=5;
  35.                 if(e.getKeyCode()==KeyEvent.VK_DOWN)
  36.                         y+=5;
  37.                 if(e.getKeyCode()==KeyEvent.VK_LEFT)
  38.                         x-=5;
  39.                 if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  40.                         x+=5;
  41.                 }
  42.                
  43.             else{
  44.             if(e.getKeyCode()==KeyEvent.VK_UP)
  45.                     y+=5;
  46.             if(e.getKeyCode()==KeyEvent.VK_DOWN)
  47.                     y-=5;
  48.             if(e.getKeyCode()==KeyEvent.VK_LEFT)
  49.                     x+=5;
  50.             if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  51.                     x-=5;
  52.             }
  53.                 lb.setLocation(x, y);
  54.         }
  55.         public void keyReleased(KeyEvent e){}
  56.         public void keyTyped(KeyEvent e){}
  57.         
  58.         public static void main(String[] args) {
  59.                 new Ch90();
  60.         }
  61. }
複製代碼

作者: 曾挺桂    時間: 2017-6-2 20:58

  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. }
複製代碼

作者: 梁和雋    時間: 2017-6-2 21:01

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




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