Board logo

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

作者: tonyh    時間: 2021-9-24 19:04     標題: 鍵盤事件 (二)

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

作者: 董宸佑    時間: 2021-9-24 19:16

  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.       
  12.         Ch01()
  13.         {
  14.                 ic=new ImageIcon(Ch01.class.getResource("pic/icon.png"));
  15.                 ii=new ImageIcon(Ch01.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 Ch01();
  59.         }

  60. }
複製代碼

作者: 林政瑜    時間: 2021-9-24 19: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 Ch90 implements KeyListener {

  7.         private JFrame fm;
  8.         private ImageIcon icon1,icon2;
  9.         private JLabel lb;
  10.         private int x=100,y=100;
  11.         Ch90()
  12.         {
  13.                 icon1=new ImageIcon(Ch90.class.getResource("pic/icon.png"));
  14.                 icon2=new ImageIcon(Ch90.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.         {
  29.                 if(e.isShiftDown()==true){   
  30.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  31.                                 y+=5;
  32.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  33.                                 y-=5;
  34.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  35.                                 x+=5;
  36.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  37.                                 x-=5;
  38.                         lb.setLocation(x, y);
  39.                 }
  40.                 else{
  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 void keyReleased(KeyEvent e){}
  53.         public void keyTyped(KeyEvent e){}

  54.         public static void main(String[] args) {
  55.                 new Ch90();
  56.         }
  57. }
複製代碼

作者: 黃宥華    時間: 2021-9-24 19:18

  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 Ch17 implements KeyListener {
  7.         private JFrame fm;
  8.         private ImageIcon icon1,icon2;
  9.         private JLabel lb;
  10.         private int x=100,y=100;
  11.         Ch17()
  12.         {
  13.                 icon1=new ImageIcon(Ch17.class.getResource("pic/icon.png"));
  14.                 icon2=new ImageIcon(Ch17.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.         {
  29.                 if(e.isShiftDown()){
  30.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  31.                                 y+=5;
  32.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  33.                                 y-=5;
  34.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  35.                                 x+=5;
  36.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  37.                                 x-=5;
  38.                 }else{
  39.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  40.                                 y-=5;
  41.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  42.                                 y+=5;
  43.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  44.                                 x-=5;
  45.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  46.                                 x+=5;
  47.                 }
  48.                 lb.setLocation(x, y);
  49.         }
  50.         public void keyReleased(KeyEvent e){

  51.         }
  52.         public void keyTyped(KeyEvent e){

  53.         }   
  54.         public static void main(String[] args) {
  55.                 new Ch17();
  56.         }
  57. }
複製代碼

作者: 陳宥穎    時間: 2021-9-24 19:25

  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/baby.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.                 {
  34.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  35.                     y-=5;
  36.             if(e.getKeyCode()==KeyEvent.VK_DOWN)
  37.                     y+=5;
  38.             if(e.getKeyCode()==KeyEvent.VK_LEFT)
  39.                     x-=5;
  40.             if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  41.                     x+=5;
  42.             lb.setLocation(x, y);
  43.                 }
  44.                 else
  45.                 {
  46.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  47.                     y+=5;
  48.             if(e.getKeyCode()==KeyEvent.VK_DOWN)
  49.                     y-=5;
  50.             if(e.getKeyCode()==KeyEvent.VK_LEFT)
  51.                     x+=5;
  52.             if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  53.                     x-=5;
  54.             lb.setLocation(x, y);
  55.                 }
  56.                
  57.         }
  58.         public void keyReleased(KeyEvent e){}
  59.         public void keyTyped(KeyEvent e){}
  60.       
  61.         public static void main(String[] args) {
  62.                 new Ch90();
  63.         }
  64. }
複製代碼

作者: 孫嘉駿    時間: 2021-9-24 19:27

  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 Ch01 extends KeyAdapter{
  7.         JFrame fm;
  8.         JLabel lb;
  9.         ImageIcon ii, ic;
  10.         int x=200, y=100;
  11.         Ch01(){
  12.                 ic=new ImageIcon(Ch01.class.getResource("pic/icon.png"));
  13.                 ii=new ImageIcon(Ch01.class.getResource("pic/baby.png"));

  14.                 lb=new JLabel(ii);
  15.                 lb.setBounds(x, y, 128, 128);

  16.                 fm=new JFrame("鍵盤事件");
  17.                 fm.setIconImage(ic.getImage());
  18.                 fm.setBounds(100, 100, 500, 350);
  19.                 fm.setVisible(true);
  20.                 fm.setResizable(true);
  21.                 fm.setLayout(null);
  22.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  23.                 fm.add(lb);
  24.                 fm.addKeyListener(this);
  25.         }
  26.         public void keyPressed(KeyEvent e)
  27.         {
  28.                 if(e.isShiftDown()==false)
  29.                 {
  30.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  31.                                 y-=5;
  32.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  33.                                 y+=5;
  34.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  35.                                 x-=5;
  36.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  37.                                 x+=5;
  38.                 }else
  39.                 {
  40.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  41.                                 y+=5;
  42.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  43.                                 y-=5;
  44.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  45.                                 x+=5;
  46.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  47.                                 x-=5;
  48.                 }
  49.                 lb.setLocation(x, y);
  50.         }
  51.         public static void main(String[] args) {
  52.                 new Ch01();

  53.         }

  54. }
複製代碼

作者: 蔡忻霓    時間: 2021-9-24 19:31

  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 JPA01 extends KeyAdapter{

  7.     JFrame fm;
  8.     JLabel lb;
  9.     ImageIcon ii,ic;
  10.     int x=200, y=100;
  11.    
  12.     JPA01()
  13.     {
  14.             ic=new ImageIcon(JPA01.class.getResource("pic/icon.png"));
  15.             ii=new ImageIcon(JPA01.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.     public void keyPressed(KeyEvent e)
  31.     {
  32.             if(e.isShiftDown()==false)
  33.             {
  34.                     if(e.getKeyCode()==KeyEvent.VK_UP)
  35.                             y-=5;
  36.                     if(e.getKeyCode()==KeyEvent.VK_DOWN)
  37.                 y+=5;
  38.             if(e.getKeyCode()==KeyEvent.VK_LEFT)
  39.                 x-=5;
  40.             if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  41.                 x+=5;
  42.             }else
  43.             {
  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 static void main(String[] args)
  56.     {
  57.             new JPA01();
  58.     }
  59. }
複製代碼

作者: 沈子晏    時間: 2021-9-24 19:59

  1. import java.awt.event.KeyAdapter;

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

  6. public class Ch001 extends KeyAdapter {

  7.         JFrame fm;
  8.         JLabel lb;
  9.         ImageIcon icon1,icon2;
  10.         int x=200, y=100;

  11.         Ch001(){
  12.                 icon2=new ImageIcon(Ch001.class.getResource("pic/icon.png"));
  13.                 icon1=new ImageIcon(Ch001.class.getResource("pic/baby.png"));

  14.                 lb=new JLabel(icon1);
  15.                 lb.setBounds(x, y, 128, 128);

  16.                 fm=new JFrame("鍵盤事件");
  17.                 fm.setIconImage(icon2.getImage());
  18.                 fm.setBounds(100, 100, 500, 350);
  19.                 fm.setVisible(true);
  20.                 fm.setResizable(true);
  21.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  22.                 fm.setLayout(null);
  23.                 fm.add(lb);
  24.                 fm.addKeyListener(this);
  25.         }
  26.         public void keyPressed(KeyEvent e)
  27.         {
  28.                 if(e.isShiftDown()==false)
  29.                 {
  30.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  31.                                 y-=5;
  32.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  33.                                 y+=5;
  34.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  35.                                 x-=5;
  36.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  37.                                 x+=5;
  38.                 }else
  39.                 {
  40.                         if(e.getKeyCode()==KeyEvent.VK_UP)
  41.                                 y+=5;
  42.                         if(e.getKeyCode()==KeyEvent.VK_DOWN)
  43.                                 y-=5;
  44.                         if(e.getKeyCode()==KeyEvent.VK_LEFT)
  45.                                 x+=5;
  46.                         if(e.getKeyCode()==KeyEvent.VK_RIGHT)
  47.                                 x-=5;
  48.                 }
  49.                 lb.setLocation(x, y);
  50.         }
  51.         public static void main(String[] args) {
  52.                 new Ch001();
  53.         }

  54. }
複製代碼





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