精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Swing中使用方向鍵移動圖片

開發 后端
本文主要介紹整個JFrame采用null布局,圖片放在Jlabel中,實現了使用鍵盤上面的方向鍵控制圖片的移動。可以選擇方向為上,下,左,右,左上,左下,右上,右下等8個方向,當圖片移動到窗口邊緣時就不再移動。詳細請看下文

整個JFrame采用null布局,圖片放在Jlabel中,實現了使用鍵盤上面的方向鍵控制圖片的移動。可以選擇方向為上,下,左,右,左上,左下,右上,右下等8個方向,當圖片移動到窗口邊緣時就不再移動。

KEY枚舉:根據按鍵結果得到的移動方向

HORIZION枚舉:鍵盤上按下的左右方向鍵(左、右)

VERTICAL枚舉:鍵盤上按下的上下方向鍵(上、下)

STEP:圖片響應按鍵時移動的單位

怎么響應兩個鍵?

若一個鍵按下(發出press事件)后沒有彈起(未發出release事件)時,按下了另一個鍵(發出press事件),此時就是兩個鍵同時按下了。

由于按鍵由程序的枚舉量記錄,當按下相反方向鍵時(不是同時按住,也就是說按一個鍵后彈起了再按另一個),需要將前一次按下的方向記錄清除(如:先按了左,然后再按右,此時將左的記錄清除)。

  1. package com.cnblogs.hyjiacan;  
  2.    
  3.  import java.awt.Color;  
  4.  import java.awt.Point;  
  5.  import java.awt.event.KeyAdapter;  
  6.  import java.awt.event.KeyEvent;  
  7.    
  8.  import javax.swing.Icon;  
  9.  import javax.swing.ImageIcon;  
  10.  import javax.swing.JFrame;  
  11.  import javax.swing.JLabel;  
  12.    
  13.  enum KEY {  
  14.      UP, RIGHT, DOWN, LEFT, RIGHT_UP, RIGHT_DOWN, LEFT_UP, LEFT_DOWN  
  15.  }  
  16.    
  17.  enum HORIZION {  
  18.      LEFT, RIGHT  
  19.  }  
  20.    
  21.  enum VERTICAL {  
  22.      UP, DOWN  
  23.  }  
  24.    
  25.  public class MoveImage {  
  26.      JFrame win;  
  27.      Icon img;  
  28.      JLabel lb;  
  29.      static final int STEP = 2;  
  30.      KEY key;  
  31.      HORIZION hor;  
  32.      VERTICAL ver;  
  33.    
  34.      public MoveImage() {  
  35.          hor = null;  
  36.          ver = null;  
  37.    
  38.          win = new JFrame("MoveImage");  
  39.          win.setLayout(null);  
  40.          // 加載圖片  
  41.          img = new ImageIcon(getClass().getResource("img.gif"));  
  42.          lb = new JLabel();  
  43.          lb.setSize(img.getIconWidth(), img.getIconHeight());  
  44.          // 裝載圖片  
  45.          lb.setIcon(img);  
  46.    
  47.          win.setBounds(2000400300);  
  48.          // 響應鍵盤上的鍵按下事件  
  49.          win.addKeyListener(new KeyAdapter() {  
  50.              // 鍵值臨時量  
  51.              int k;  
  52.    
  53.              @Override 
  54.              public void keyPressed(KeyEvent e) {  
  55.                  k = e.getKeyCode();  
  56.    
  57.                  switch (k) {  
  58.                  case KeyEvent.VK_UP:  
  59.                      ver = VERTICAL.UP;  
  60.                      break;  
  61.                  case KeyEvent.VK_DOWN:  
  62.                      ver = VERTICAL.DOWN;  
  63.                      break;  
  64.                  case KeyEvent.VK_RIGHT:  
  65.                      hor = HORIZION.RIGHT;  
  66.                      break;  
  67.                  case KeyEvent.VK_LEFT:  
  68.                      hor = HORIZION.LEFT;  
  69.                      break;  
  70.                  }  
  71.                  if (ver == null) {  
  72.                      if (hor == HORIZION.RIGHT) {  
  73.                          key = KEY.RIGHT;  
  74.                      } else {  
  75.                          key = KEY.LEFT;  
  76.                      }  
  77.    
  78.                  } else if (hor == null) {  
  79.                      if (ver == VERTICAL.UP) {  
  80.                          key = KEY.UP;  
  81.                      } else {  
  82.                          key = KEY.DOWN;  
  83.                      }  
  84.                  } else {  
  85.                      if (hor == HORIZION.RIGHT) {  
  86.                          if (ver == VERTICAL.UP) {  
  87.                              key = KEY.RIGHT_UP;  
  88.                          } else {  
  89.                              key = KEY.RIGHT_DOWN;  
  90.                          }  
  91.                      } else {  
  92.                          if (ver == VERTICAL.UP) {  
  93.                              key = KEY.LEFT_UP;  
  94.                          } else {  
  95.                              key = KEY.LEFT_DOWN;  
  96.                          }  
  97.                      }  
  98.                  }  
  99.    
  100.                  move(key);  
  101.              }  
  102.    
  103.              @Override 
  104.              public void keyReleased(KeyEvent e) {  
  105.                  k = e.getKeyCode();  
  106.                  switch (k) {  
  107.                  case KeyEvent.VK_UP:  
  108.                      ver = null;  
  109.                      break;  
  110.                  case KeyEvent.VK_DOWN:  
  111.                      ver = null;  
  112.                      break;  
  113.                  case KeyEvent.VK_RIGHT:  
  114.                      hor = null;  
  115.                      break;  
  116.                  case KeyEvent.VK_LEFT:  
  117.                      hor = null;  
  118.                      break;  
  119.                  }  
  120.              }  
  121.          });  
  122.    
  123.          win.add(lb);  
  124.          win.getContentPane().setBackground(Color.WHITE);  
  125.          win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  126.          win.setVisible(true);  
  127.          win.validate();  
  128.      }  
  129.    
  130.      /**  
  131.       * 移動圖片, 只處理上下左右4個方向鍵,其它的不處理  
  132.       *   
  133.       * @param keyCode  
  134.       *            按下的鍵盤上的鍵的鍵值  
  135.       */ 
  136.      void move(KEY key) {  
  137.          // 記下當前的位置  
  138.          Point pos = lb.getLocation();  
  139.          switch (key) {  
  140.          case UP:// 上方向  
  141.              pos.y -= STEP;  
  142.              break;  
  143.          case RIGHT:// 右方向  
  144.              pos.x += STEP;  
  145.              break;  
  146.          case DOWN:// 下方向  
  147.              pos.y += STEP;  
  148.              break;  
  149.          case LEFT:// 左方向  
  150.              pos.x -= STEP;  
  151.              break;  
  152.          case RIGHT_UP:// 右上方向  
  153.              pos.x += STEP;  
  154.              pos.y -= STEP;  
  155.              break;  
  156.          case RIGHT_DOWN:// 右下方向  
  157.              pos.x += STEP;  
  158.              pos.y += STEP;  
  159.              break;  
  160.          case LEFT_DOWN:// 左下方向  
  161.              pos.x -= STEP;  
  162.              pos.y += STEP;  
  163.              break;  
  164.          case LEFT_UP:// 左上方向  
  165.              pos.x -= STEP;  
  166.              pos.y -= STEP;  
  167.              break;  
  168.          }  
  169.          // 是否移動到了邊緣  
  170.          if (pos.x >= win.getWidth() - lb.getWidth() || pos.x < 0 
  171.                  || pos.y >= win.getHeight() - lb.getHeight() || pos.y < 0)  
  172.              return;  
  173.          // 設置新位置  
  174.          lb.setLocation(pos);  
  175.          lb.validate();  
  176.      }  
  177.    
  178.      public static void main(String[] args) {  
  179.          MoveImage m = new MoveImage();  
  180.      }  
  181.  } 

遺留問題:

在同時按住上下或者左右方向時,圖片會朝著后面按下的那個方向鍵指定的方向移動(理論上此時應該不動的)

在同時按住兩個方向鍵移動時,圖片會先移動一下,然后會頓一下,再繼續移動。

原文鏈接:http://www.cnblogs.com/hyjiacan/archive/2012/05/02/swing-move-image-via-keyboard.html

【編輯推薦】

  1. Java程序設計:圖形與多媒體處理
  2. Java集合框架總結:TreeSet類的排序問題
  3. Java理論與實踐: Web層的狀態復制
  4. Java圖形界面開發:高級Swing容器(三)
  5. Java圖形界面開發:高級Swing容器(二)
責任編輯:林師授 來源: hyjiacan的博客
相關推薦

2020-05-22 16:27:03

筆記本鍵盤尺寸

2009-12-25 13:58:15

LINUX光標移動

2012-03-16 09:35:52

HTML 5

2021-02-05 09:18:33

VS CodeVim操作

2012-04-01 10:02:00

HTML5

2022-09-26 12:28:16

OpenGLAPI使用移動應用

2009-07-15 11:19:17

invokeLaterSwing

2022-07-31 15:41:03

Linux

2011-06-14 13:07:54

Qt 圖片

2013-01-07 10:37:10

移動游戲本地游戲桌游

2010-09-30 14:11:41

JSIE6.0

2011-08-16 10:19:24

timeconfig中文man

2016-05-18 14:20:12

LinuxgThumb圖片

2021-02-20 18:00:26

rangerLinux

2019-12-13 09:45:38

Windows 10PowerToysWindows

2013-11-06 08:48:41

異構計算移動計算

2012-11-27 10:52:23

移動支付平臺

2012-06-14 16:04:56

移動端圖片分享

2010-07-21 15:16:08

SQL Server

2011-07-26 09:48:47

Shell快捷鍵grepinit
點贊
收藏

51CTO技術棧公眾號

97久久精品在线| 亚洲第一精品夜夜躁人人爽| 一区在线电影| 亚洲国产精品久久久久爰性色| 伊人成人在线| 伊人成人开心激情综合网| aaaaaaaa毛片| 欧美aa视频| 亚洲欧美一区二区三区国产精品 | 成人亚洲一区二区一| 欧美一级视频一区二区| 69夜色精品国产69乱| 国产精品qvod| 在线综合亚洲欧美在线视频| 无码中文字幕色专区| 黄色精品免费看| 久久免费看少妇高潮| 亚洲最大福利网站| www.久久网| 在线亚洲观看| 欧美日韩不卡合集视频| 欧美巨胸大乳hitomi| 牛牛视频精品一区二区不卡| 91精品国产色综合久久不卡电影 | 青青草av在线播放| 亚洲精品97| 在线精品国产成人综合| 日韩aaaaa| 136国产福利精品导航网址应用| 欧美视频三区在线播放| av黄色在线网站| 国产黄色大片在线观看| 亚洲免费电影在线| 在线丝袜欧美日韩制服| 免费在线性爱视频| 91视频91自| 国产高清一区二区三区| 性猛交富婆╳xxx乱大交天津| 青青草国产精品97视觉盛宴| 国产69精品久久久久9| 国产精品白嫩白嫩大学美女| 国产影视一区| 亚洲视频视频在线| 亚洲综合网在线观看| 日本天堂一区| 亚洲大尺度美女在线| 美女露出粉嫩尿囗让男人桶| av日韩在线免费观看| 欧美日韩中文字幕精品| 成人性生生活性生交12| 向日葵视频成人app网址| 一本久久精品一区二区| 欧洲av无码放荡人妇网站| 男人久久天堂| 色av一区二区| 国产91色在线观看| 视频91a欧美| 日韩一区二区免费在线电影| 永久av免费在线观看| 欧美高清hd| 日韩精品一区二| 色哟哟无码精品一区二区三区| 在线精品国产亚洲| 亚洲精品国产精品久久清纯直播 | 国产毛片久久久久久| 不卡的国产精品| 91精品国产综合久久久久久久| av噜噜在线观看| 久久一级大片| 精品欧美乱码久久久久久 | 少妇性饥渴无码a区免费| 忘忧草在线影院两性视频| 色综合天天狠狠| 国产一区二区在线免费播放| 国产精品第一| 欧美大胆人体bbbb| 人妻体内射精一区二区| 成人一区二区| 欧美日韩福利电影| 国产香蕉视频在线| 日本vs亚洲vs韩国一区三区 | 欧美日韩麻豆| 中文字幕亚洲色图| 国产精品成人免费观看| 一区二区三区精品视频在线观看| 日本精品va在线观看| 伊人网av在线| 成人国产精品免费观看动漫| 欧美日韩综合久久| 最新黄网在线观看| 色综合天天综合网天天看片| 中文字幕日韩综合| 日韩深夜影院| 成人97在线观看视频| 国产成人亚洲欧洲在线| 毛片基地黄久久久久久天堂| 国产精华一区二区三区| 国产大片在线免费观看| 亚洲午夜在线视频| 亚洲一级片网站| 超碰成人福利| 上原亚衣av一区二区三区| 香蕉视频一区二区| 蜜桃av一区二区| 精品日本一区二区三区在线观看| 亚洲搞黄视频| 欧美性jizz18性欧美| 日本少妇xxx| 精品精品久久| 51ⅴ精品国产91久久久久久| 91福利在线观看视频| 99精品视频在线观看| 一区二区三区日韩视频| 无人区在线高清完整免费版 一区二| 日韩午夜三级在线| 黑人と日本人の交わりビデオ| 亚洲激情不卡| 91偷拍精品一区二区三区| av网站无病毒在线| 婷婷久久综合九色综合绿巨人 | 久久精品视频va| 97人妻精品视频一区| 成人av免费观看| 欧美一级中文字幕| 成人在线视频www| 视频在线观看99| www毛片com| 26uuu精品一区二区在线观看| 久久精品国产精品亚洲精品色| 韩国成人动漫| 亚洲欧美国产精品专区久久| 伊人国产在线观看| 国产不卡一区视频| 97精品国产97久久久久久粉红| 91成人抖音| 亚洲三级 欧美三级| 国产成人精品片| 不卡一区二区三区四区| 僵尸世界大战2 在线播放| 日韩在线精品强乱中文字幕| 久久视频这里只有精品| 国产又粗又猛视频| 中文字幕在线不卡国产视频| 色悠悠久久综合网| 日韩中文首页| 成人av在线天堂| 精品国产99久久久久久| 欧美日韩视频在线一区二区| 国产在线综合视频| 人人狠狠综合久久亚洲| 午夜视频久久久| 国产一区一一区高清不卡| 国产一区二区三区丝袜| 中文字幕乱码在线观看| 国产精品久久影院| 手机在线国产视频| 激情欧美亚洲| 久久人人爽爽人人爽人人片av| 午夜伦理福利在线| 中文字幕九色91在线| 在线观看毛片网站| 亚洲久草在线视频| 无码成人精品区在线观看| 国产精品美女久久久浪潮软件| 久久久福利视频| gay欧美网站| 在线播放日韩欧美| 国产深喉视频一区二区| 一个色综合av| 亚洲欧美色图视频| 蜜桃视频在线一区| 青青草综合在线| 丝袜av一区| 91精品国产综合久久香蕉| 污视频网站免费在线观看| 日韩成人高清在线| 成人黄色免费网| 亚洲精品老司机| 成人手机在线免费视频| 日韩1区2区3区| 日本大片免费看| 神马久久一区二区三区| 91在线视频成人| 在线看片福利| 久久天天躁日日躁| 日韩三级电影网| 777xxx欧美| 亚洲国产成人无码av在线| **网站欧美大片在线观看| 国产女人18毛片水真多18| 日本欧美一区二区三区乱码| 蜜臀av性久久久久蜜臀av| 四虎5151久久欧美毛片| 国产在线精品播放| 永久免费毛片在线播放| 久久久极品av| 国产在线视频网址| 欧美videossexotv100| 337p粉嫩色噜噜噜大肥臀| 亚洲精品国产一区二区精华液| 中国美女乱淫免费看视频| 紧缚奴在线一区二区三区| 99精品在线免费视频| 婷婷综合伊人| 日韩电影在线播放| 久久久伦理片| 91在线观看网站| 欧美高清你懂的| 日本久久久久久| 国产第一页在线| 久久最新资源网| 国产精品视频一区二区久久| 精品国产91亚洲一区二区三区婷婷| japanese国产在线观看| 午夜电影久久久| 久草免费在线观看视频| 国产精品嫩草影院com| av无码av天天av天天爽| 成人晚上爱看视频| 91在线三级| 久久九九国产精品怡红院 | 在线能看的av| 亚洲综合网站在线观看| 日韩精品123区| 国产精品女同一区二区三区| 亚洲中文字幕一区| 高清不卡一区二区在线| 手机精品视频在线| 久久99精品国产91久久来源| 激情综合网婷婷| 亚洲精品色图| 无码 制服 丝袜 国产 另类| 亚洲国产精品日韩专区av有中文| 亚洲欧美国产一区二区| 国产一区网站| 色播亚洲婷婷| 第一会所sis001亚洲| 日本一区二区三区四区在线观看| 美女网站色精品尤物极品姐弟| 99高清视频有精品视频| 麻豆国产一区| 2014亚洲精品| 日韩在线亚洲| 国产欧美日韩综合精品二区| 亚洲**毛片| 97人人干人人| 国语一区二区三区| 精品国产综合久久| 一区二区三区日本久久久| 久久精品ww人人做人人爽| 久久精品亚洲成在人线av网址| 精品欧美一区二区在线观看视频 | 国产精品二区一区二区aⅴ| 亚洲午夜视频在线观看| 日本少妇xxxx动漫| 欧美日韩亚洲网| 少妇久久久久久久| 欧美老女人在线| www.国产精品视频| 亚洲国产精品va在看黑人| 天天操天天干天天| 日韩精品中文在线观看| 狠狠狠综合7777久夜色撩人| 在线精品播放av| 在线观看wwwxxxx| 91高清视频在线免费观看| 欧美日韩美女| 91日韩在线播放| 卡通动漫国产精品| 欧美一级二级三级| 希岛爱理av一区二区三区| 成人在线免费高清视频| 野花国产精品入口| 亚洲一区在线不卡| 国产91对白在线观看九色| 欧美亚一区二区三区| 国产精品人成在线观看免费| 午夜69成人做爰视频| 欧美三级免费观看| 97视频免费在线| 亚洲国产成人爱av在线播放| 韩国免费在线视频| 色综合天天综合网国产成人网 | 国产专区一区二区三区| 国产区精品区| 看全色黄大色大片| 免费视频一区| gogo亚洲国模私拍人体| 久久丝袜美腿综合| 日韩a级片在线观看 | 免费观看精品视频| 激情综合五月婷婷| 欧美熟妇精品黑人巨大一二三区| 亚洲欧洲无码一区二区三区| 日韩精品一区三区| 欧美日韩一区二区不卡| 人妻与黑人一区二区三区| 中文字幕国产精品| 麻豆视频在线观看免费网站黄| 国产精品自在线| 日韩一级电影| 蜜臀精品一区二区| 狠狠网亚洲精品| 色欲AV无码精品一区二区久久 | 成人18夜夜网深夜福利网| 日韩免费毛片| 国产精品美女久久久| 免费人成视频在线播放| 国产午夜精品一区二区三区四区| 妺妺窝人体色www聚色窝仙踪| 欧美亚洲精品一区| 色视频在线观看福利| 欧美日韩国产成人在线| 国产成人福利夜色影视| 美女主播视频一区| 在线欧美一区| 日批视频在线看| 中文字幕日韩精品一区| 成年人晚上看的视频| 日韩精品在线电影| 激情影院在线| 97免费高清电视剧观看| 亚洲精品国产首次亮相| 欧美成年人视频在线观看| 久久夜色精品国产噜噜av | 欧美午夜电影网| 牛牛热在线视频| 欧美一级片在线播放| 国产欧美自拍一区| 男人天堂av片| 高清av一区二区| 青青草免费av| 日韩视频中午一区| 在线视频中文字幕第一页| 成人精品在线视频| 五月精品视频| 美女被艹视频网站| 一级中文字幕一区二区| 精品人妻一区二区三区换脸明星| 日韩中文字幕在线看| 精品69视频一区二区三区| 亚洲高清精品中出| 久久aⅴ国产欧美74aaa| 国内毛片毛片毛片毛片毛片| 欧美日韩国产高清一区二区三区| 日本在线免费看| 91久久久久久久久| 欧美成人一区二免费视频软件| 国产黄色一区二区三区| 夜色激情一区二区| 三级网站在线看| 日本亚洲欧美成人| 欧美一区二区三区高清视频| 亚洲老女人av| 亚洲猫色日本管| 黄片毛片在线看| 欧美在线视频一区二区| 精品99在线| 拔插拔插华人永久免费| 一区二区三区四区精品在线视频| 亚洲精品成人区在线观看| 国a精品视频大全| 精品久久网站| 五月天开心婷婷| 香蕉成人伊视频在线观看| 青青草手机在线| 国产日韩欧美视频在线| 欧美91大片| 97精品人人妻人人| 色诱视频网站一区| 国产三级在线播放| 国产综合18久久久久久| 三级久久三级久久| 91麻豆免费视频网站| 亚洲精品短视频| 日本久久久久| 国产精品成人久久电影| 国产亚洲精品精华液| 国产伦精品一区二区三区四区| 欧美大片大片在线播放| 亚洲欧美成人vr| 婷婷激情小说网| 欧美午夜精品久久久久久久| аⅴ资源新版在线天堂| 超碰在线观看97| 日韩国产欧美一区二区三区| 久久国产精品国语对白| 亚洲欧美福利视频| 欧美视频二区欧美影视| 久草精品在线播放| 亚洲精选免费视频| 亚洲 欧美 自拍偷拍| 91精品久久久久| 久久性天堂网| 久久精品久久精品久久| 中文字幕日韩欧美在线视频| 美女av一区| 国产精品99精品无码视亚| 欧美午夜片在线看| 深夜成人在线|