返回列表 發帖

鍵盤事件 (四)

本帖最後由 周政輝 於 2018-2-24 11:24 編輯

設計如下圖所示視窗, 按住鍵盤的方向鍵, 可控制寄居蟹往上下左右四個方向移動, 移動時頭要朝前方.



素材:
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

  1. package bbs.istak.org.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;
  4. import java.awt.Image;
  5. import java.awt.event.KeyAdapter;
  6. import java.awt.event.KeyEvent;

  7. import javax.swing.ImageIcon;
  8. import javax.swing.JFrame;
  9. import javax.swing.JPanel;
  10. import javax.swing.border.EmptyBorder;
  11. import javax.swing.JLabel;

  12. public class movecharetar extends JFrame {

  13.         private JPanel contentPane;
  14.     private static ImageIcon icon;
  15.     private int x =97,y=10;
  16.         /**
  17.          * Launch the application.
  18.          */
  19.         public static void main(String[] args) {
  20.                 EventQueue.invokeLater(new Runnable() {
  21.                         public void run() {
  22.                                 try {
  23.                                         movecharetar frame = new movecharetar();
  24.                                         frame.setVisible(true);
  25.                                 } catch (Exception e) {
  26.                                         e.printStackTrace();
  27.                                 }
  28.                         }
  29.                 });
  30.         }

  31.         /**
  32.          * Create the frame.
  33.          */
  34.         public movecharetar() {
  35.                 icon = new ImageIcon(udicon.class.getResource("Actions-go-down-icon.png"));
  36.                 Image img = icon.getImage().getScaledInstance(75,102,java.awt.Image.SCALE_FAST );
  37.                 ImageIcon newicon = new ImageIcon(img);
  38.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  39.                 setBounds(100, 100, 450, 300);
  40.                 contentPane = new JPanel();
  41.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  42.                 setContentPane(contentPane);
  43.                 contentPane.setLayout(null);
  44.                
  45.                 JLabel label = new JLabel(newicon);
  46.                 label.setBounds(97, 10, 100, 100);
  47.                 contentPane.add(label);
  48.                 addKeyListener(new KeyAdapter() {
  49.                         @Override
  50.                         public void keyPressed(KeyEvent e) {
  51.                                 if(e.getKeyCode()==e.VK_LEFT){
  52.                                         x-=3;
  53.                                         label.setIcon(turndir("Actions-go-previous-icon.png"));
  54.                                 }
  55.                                 if(e.getKeyCode()==e.VK_UP){
  56.                                         y-=3;
  57.                                         label.setIcon(turndir("Actions-go-up-icon.png"));
  58.                                 }
  59.                                 if(e.getKeyCode()==e.VK_RIGHT){
  60.                                         x+=3;       
  61.                                         label.setIcon(turndir("Actions-go-next-icon.png"));
  62.                                 }
  63.                             if(e.getKeyCode()==e.VK_DOWN){
  64.                                     y+=3;
  65.                                     label.setIcon(turndir("Actions-go-down-icon.png"));
  66.                             }
  67.                             label.setLocation(x, y);
  68.                         }
  69.                         });
  70.                                        
  71.         }
  72.         public static ImageIcon turndir(String picname){
  73.                
  74.                 icon = new ImageIcon(udicon.class.getResource(picname));
  75.                 Image img = icon.getImage().getScaledInstance(100,100,java.awt.Image.SCALE_FAST );
  76.                 ImageIcon diricon = new ImageIcon(img);
  77.                
  78.                 return diricon;
  79.         }

  80. }
複製代碼

TOP

  1. package bbs.istak.org.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;
  4. import java.awt.Image;

  5. import javax.swing.ImageIcon;
  6. import javax.swing.JFrame;
  7. import javax.swing.JPanel;
  8. import javax.swing.border.EmptyBorder;
  9. import javax.swing.JLabel;
  10. import java.awt.event.KeyAdapter;
  11. import java.awt.event.KeyEvent;

  12. public class Main extends JFrame {

  13.         private JPanel contentPane;
  14.     private int x=100, y=100;
  15.     private ImageIcon icon_1 = new ImageIcon(Main.class.getResource("crab.png"));
  16.     private ImageIcon icon_2 = new ImageIcon(Main.class.getResource("crab2.png"));
  17.     private ImageIcon icon_3 = new ImageIcon(Main.class.getResource("crab3.png"));
  18.     private ImageIcon icon_4 = new ImageIcon(Main.class.getResource("crab4.png"));

  19.         public static void main(String[] args) {
  20.                 EventQueue.invokeLater(new Runnable() {
  21.                         public void run() {
  22.                                 try {
  23.                                         Main frame = new Main();
  24.                                         ImageIcon icon = new ImageIcon(Main.class.getResource("icon.png"));
  25.                                         Image img = icon.getImage().getScaledInstance(45, 45, java.awt.Image.SCALE_FAST);
  26.                                         frame.setIconImage(img);
  27.                                         frame.setVisible(true);
  28.                                 } catch (Exception e) {
  29.                                         e.printStackTrace();
  30.                                 }
  31.                         }
  32.                 });
  33.         }


  34.         public Main() {
  35.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  36.                 setBounds(100, 100, 483, 359);
  37.                 contentPane = new JPanel();       
  38.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  39.                 setContentPane(contentPane);
  40.                 contentPane.setLayout(null);
  41.                
  42.                 ImageIcon icon = new ImageIcon(Main.class.getResource("crab2.png"));
  43.                 Image img = icon.getImage().getScaledInstance(150, 150, java.awt.Image.SCALE_FAST);
  44.                 ImageIcon temp = new ImageIcon(img);
  45.                
  46.                 JLabel lblNewLabel = new JLabel(temp);           
  47.                 lblNewLabel.setBounds(94, 86, 169, 142);      
  48.                 contentPane.add(lblNewLabel);
  49.                 addKeyListener(new KeyAdapter() {
  50.                         public void keyPressed(KeyEvent e) {                       
  51.                                 if(e.getKeyCode() == KeyEvent.VK_UP){       
  52.                                  y-=5;
  53.                                  lblNewLabel.setIcon(icon_1);
  54.                                 }
  55.                             if(e.getKeyCode() == KeyEvent.VK_DOWN){
  56.                                  y+=5;
  57.                                  lblNewLabel.setIcon(icon_3);
  58.                             }
  59.                         if(e.getKeyCode() == KeyEvent.VK_LEFT){
  60.                                  x-=5;
  61.                                  lblNewLabel.setIcon(icon_4);
  62.                         }
  63.                                 
  64.                                 if(e.getKeyCode() == KeyEvent.VK_RIGHT){
  65.                                         x+=5;       
  66.                                         lblNewLabel.setIcon(icon_2);
  67.                                 }      
  68.                                 lblNewLabel.setLocation(x, y);
  69.                         }
  70.                 });               
  71.         }
  72. }
複製代碼

TOP

  1. import java.awt.BorderLayout;
  2. import java.awt.EventQueue;
  3. import java.awt.Image;

  4. import javax.swing.ImageIcon;
  5. import javax.swing.JFrame;
  6. import javax.swing.JPanel;
  7. import javax.swing.border.EmptyBorder;
  8. import javax.swing.GroupLayout;
  9. import javax.swing.GroupLayout.Alignment;
  10. import javax.swing.JLabel;
  11. import java.awt.event.KeyAdapter;
  12. import java.awt.event.KeyEvent;


  13. public class CRAB extends JFrame {

  14.         private JPanel contentPane;
  15.         private int x=150;
  16.         private int y=150;

  17.         /**
  18.          * Launch the application.
  19.          */
  20.         public static void main(String[] args) {
  21.                 EventQueue.invokeLater(new Runnable() {
  22.                         public void run() {
  23.                                 try {
  24.                                         CRAB frame = new CRAB();
  25.                                         frame.setVisible(true);
  26.                                 } catch (Exception e) {
  27.                                         e.printStackTrace();
  28.                                 }
  29.                         }
  30.                 });
  31.         }

  32.         /**
  33.          * Create the frame.
  34.          */
  35.         public CRAB() {
  36.                 setTitle("\u6309\u65B9\u5411\u9375\u79FB\u52D5\u5716\u5F62");
  37.                 ImageIcon icon = new ImageIcon(CRAB.class.getResource("icon.png"));
  38.                 Image img = icon.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  39.         setIconImage(img);
  40.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  41.                 setBounds(100, 100, 400, 400);
  42.                 contentPane = new JPanel();
  43.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  44.                 setContentPane(contentPane);
  45.                 contentPane.setLayout(null);
  46.                 ImageIcon imgbaby = new ImageIcon(CRAB.class.getResource("crab.png"));
  47.                 Image baby = imgbaby.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  48.                 ImageIcon babyicon = new ImageIcon(baby);
  49.                 JLabel label = new JLabel(babyicon);
  50.                 label.setBounds(150, 150, 100, 100);
  51.                 contentPane.add(label);
  52.                
  53.                 addKeyListener(new KeyAdapter()
  54.                 {
  55.                         @Override
  56.                         public void keyPressed(KeyEvent arg0)
  57.                         {
  58.                                 if(arg0.isShiftDown())
  59.                                 {
  60.                                         if(arg0.getKeyCode() == KeyEvent.VK_UP)
  61.                                         {                                           
  62.                                                 y+=5;
  63.                                                 ImageIcon imgbaby = new ImageIcon(CRAB.class.getResource("crab-2.png"));
  64.                                                 Image baby = imgbaby.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  65.                                                 ImageIcon babyicon = new ImageIcon(baby);
  66.                                                                                           
  67.                                                 label.setIcon(babyicon);
  68.                                         }
  69.                                         if(arg0.getKeyCode() == KeyEvent.VK_DOWN)
  70.                                         {
  71.                                                 y-=5;
  72.                                                 ImageIcon imgbaby = new ImageIcon(CRAB.class.getResource("crab.png"));
  73.                                                 Image baby = imgbaby.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  74.                                                 ImageIcon babyicon = new ImageIcon(baby);
  75.                                                 label.setIcon(babyicon);
  76.                                                 
  77.                                         }
  78.                                         if(arg0.getKeyCode() == KeyEvent.VK_LEFT)
  79.                                         {
  80.                                                 x+=5;
  81.                                                 ImageIcon imgbaby = new ImageIcon(CRAB.class.getResource("crab-1.png"));
  82.                                                 Image baby = imgbaby.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  83.                                                 ImageIcon babyicon = new ImageIcon(baby);
  84.                                                 
  85.                                                 label.setIcon(babyicon);
  86.                                         }
  87.                                         if(arg0.getKeyCode() == KeyEvent.VK_RIGHT)
  88.                                         {
  89.                                                 x-=5;
  90.                                                 ImageIcon imgbaby = new ImageIcon(CRAB.class.getResource("crab-3.png"));
  91.                                                 Image baby = imgbaby.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  92.                                                 ImageIcon babyicon = new ImageIcon(baby);
  93.                                                 
  94.                                                 label.setIcon(babyicon);
  95.                                         }
  96.                                 }
  97.                                 else
  98.                                 {
  99.                                         if(arg0.getKeyCode() == KeyEvent.VK_UP)
  100.                                         {
  101.                                                 y-=5;
  102.                                                 ImageIcon imgbaby = new ImageIcon(CRAB.class.getResource("crab.png"));
  103.                                                 Image baby = imgbaby.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  104.                                                 ImageIcon babyicon = new ImageIcon(baby);
  105.                                                 
  106.                                                 label.setIcon(babyicon);
  107.                                                 
  108.                                         }
  109.                                         if(arg0.getKeyCode() == KeyEvent.VK_DOWN)
  110.                                         {
  111.                                                 y+=5;
  112.                                                 ImageIcon imgbaby = new ImageIcon(CRAB.class.getResource("crab-2.png"));
  113.                                                 Image baby = imgbaby.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  114.                                                 ImageIcon babyicon = new ImageIcon(baby);
  115.                                                
  116.                                                 label.setIcon(babyicon);
  117.                                                 
  118.                                         }
  119.                                         if(arg0.getKeyCode() == KeyEvent.VK_LEFT)
  120.                                         {                                               
  121.                                                 x-=5;
  122.                                                 ImageIcon imgbaby = new ImageIcon(CRAB.class.getResource("crab-3.png"));
  123.                                                 Image baby = imgbaby.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  124.                                                 ImageIcon babyicon = new ImageIcon(baby);
  125.                                                 
  126.                                                 label.setIcon(babyicon);
  127.                                                 
  128.                                         }
  129.                                         if(arg0.getKeyCode() == KeyEvent.VK_RIGHT)
  130.                                         {                                               
  131.                                                 x+=5;
  132.                                                 ImageIcon imgbaby = new ImageIcon(CRAB.class.getResource("crab-1.png"));
  133.                                                 Image baby = imgbaby.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  134.                                                 ImageIcon babyicon = new ImageIcon(baby);
  135.                                                
  136.                                                 label.setIcon(babyicon);
  137.                                         }
  138.                                 }
  139.                                 
  140.                                 label.setBounds(x,y,100,100);
  141.                         }
  142.                 });
  143.         }
  144. }
複製代碼

TOP

  1. package bbs.istak.org.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;
  4. import java.awt.Image;

  5. import javax.swing.JFrame;
  6. import javax.swing.JPanel;
  7. import javax.swing.border.EmptyBorder;

  8. import java.awt.Toolkit;

  9. import javax.swing.JLabel;
  10. import javax.swing.ImageIcon;
  11. import java.awt.event.KeyAdapter;
  12. import java.awt.event.KeyEvent;

  13. public class Main extends JFrame {

  14.         private JPanel contentPane;
  15.         private ImageIcon icon;
  16.         private int x=100,y=100;

  17.         /**
  18.          * Launch the application.
  19.          */
  20.         public static void main(String[] args) {
  21.                 EventQueue.invokeLater(new Runnable() {
  22.                         public void run() {
  23.                                 try {
  24.                                         Main frame = new Main();
  25.                                         frame.setVisible(true);
  26.                                 } catch (Exception e) {
  27.                                         e.printStackTrace();
  28.                                 }
  29.                         }
  30.                 });
  31.         }

  32.         /**
  33.          * Create the frame.
  34.          */
  35.         public Main() {
  36.                
  37.                 icon = new ImageIcon(Main.class.getResource("mochi.png"));
  38.         Image img = icon.getImage().getScaledInstance(399, 300,  java.awt.Image.SCALE_FAST );
  39.     ImageIcon newIcon = new ImageIcon(img);
  40.                
  41.                 setIconImage(Toolkit.getDefaultToolkit().getImage(Main.class.getResource("icon.png")));
  42.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  43.                 setBounds(100, 100, 864, 645);
  44.                 contentPane = new JPanel();
  45.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  46.                 setContentPane(contentPane);
  47.                 contentPane.setLayout(null);
  48.                
  49.                 JLabel label = new JLabel(newIcon);addKeyListener(new KeyAdapter() {
  50.                         @Override
  51.                         public void keyReleased(KeyEvent e) {
  52.                                 if(e.isShiftDown())
  53.                                 {
  54.                                         if(e.getKeyCode() == KeyEvent.VK_UP)
  55.                                 {
  56.                                                
  57.                                         y+=15;
  58.                                         label.setIcon("MochiR.png");
  59.                                 }if(e.getKeyCode() == KeyEvent.VK_DOWN)
  60.                                 {
  61.                                         y-=15;
  62.                                         label.setIcon("MochiR.png");
  63.                                 }if(e.getKeyCode() == KeyEvent.VK_LEFT)
  64.                                 {
  65.                                         x+=15;
  66.                                         label.setIcon("MochiR.png");
  67.                                 }if(e.getKeyCode() == KeyEvent.VK_RIGHT)
  68.                                 {
  69.                                         x-=15;
  70.                                         label.setIcon("MochiR.png");
  71.                                 }
  72.                                 }else
  73.                                 {
  74.                                         if(e.getKeyCode() == KeyEvent.VK_UP)
  75.                                         {
  76.                                                 y-=15;
  77.                                                 label.setIcon("MochiR.png");
  78.                                         }if(e.getKeyCode() == KeyEvent.VK_DOWN)
  79.                                         {
  80.                                                 y+=15;
  81.                                                 label.setIcon("MochiR.png");
  82.                                         }if(e.getKeyCode() == KeyEvent.VK_LEFT)
  83.                                         {
  84.                                                 x-=15;
  85.                                                 label.setIcon("MochiR.png");
  86.                                         }if(e.getKeyCode() == KeyEvent.VK_RIGHT)
  87.                                         {
  88.                                                 label.setIcon("MochiR.png");
  89.                                                 x+=15;
  90.                                         }
  91.                                 }
  92.                                 
  93.                                 
  94.                                 label.setLocation(x,y);
  95.                         }
  96.                 });
  97.                
  98.                 label.addKeyListener(new KeyAdapter() {
  99.                         @Override
  100.                         public void keyReleased(KeyEvent e) {
  101.                                 
  102.                         }
  103.                 });
  104.                
  105.                 label.setBounds(79, 84, 338, 269);
  106.                 contentPane.add(label);
  107.         }
  108. }
複製代碼

TOP

返回列表