Board logo

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

作者: 周政輝    時間: 2018-2-24 11:11     標題: 鍵盤事件 (三)

承上個主題,判斷 Shift 鍵是否被按住,使執行時若搭配 Shift 鍵,則上下左右鍵所造成的方向會顛倒。
[attach]3403[/attach]
作者: 蔡季樺    時間: 2018-2-24 11:17

  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("baby.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("/bbs/istak/org/tw/icon.png")));
  42.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  43.                 setBounds(100, 100, 450, 300);
  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.                                         y+=5;
  57.                                 }if(e.getKeyCode() == KeyEvent.VK_DOWN)
  58.                                 {
  59.                                         y-=5;
  60.                                 }if(e.getKeyCode() == KeyEvent.VK_LEFT)
  61.                                 {
  62.                                         x+=5;
  63.                                 }if(e.getKeyCode() == KeyEvent.VK_RIGHT)
  64.                                 {
  65.                                         x-=5;
  66.                                 }
  67.                                 }else
  68.                                 {
  69.                                         if(e.getKeyCode() == KeyEvent.VK_UP)
  70.                                         {
  71.                                                 y-=5;
  72.                                         }if(e.getKeyCode() == KeyEvent.VK_DOWN)
  73.                                         {
  74.                                                 y+=5;
  75.                                         }if(e.getKeyCode() == KeyEvent.VK_LEFT)
  76.                                         {
  77.                                                 x-=5;
  78.                                         }if(e.getKeyCode() == KeyEvent.VK_RIGHT)
  79.                                         {
  80.                                                 x+=5;
  81.                                         }
  82.                                 }
  83.                                
  84.                                
  85.                                 label.setLocation(x,y);
  86.                         }
  87.                 });
  88.                
  89.                 label.addKeyListener(new KeyAdapter() {
  90.                         @Override
  91.                         public void keyReleased(KeyEvent e) {
  92.                                
  93.                         }
  94.                 });
  95.                
  96.                 label.setBounds(144, 64, 112, 94);
  97.                 contentPane.add(label);
  98.         }
  99. }
複製代碼

作者: 陳泓瑜    時間: 2018-2-24 11:20

  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 MOVE 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.                                         MOVE frame = new MOVE();
  25.                                         frame.setVisible(true);
  26.                                 } catch (Exception e) {
  27.                                         e.printStackTrace();
  28.                                 }
  29.                         }
  30.                 });
  31.         }

  32.         /**
  33.          * Create the frame.
  34.          */
  35.         public MOVE() {
  36.                 setTitle("\u6309\u65B9\u5411\u9375\u79FB\u52D5\u5716\u5F62");
  37.                 ImageIcon icon = new ImageIcon(MOVE.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(MOVE.class.getResource("baby.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.                                         }
  64.                                         if(arg0.getKeyCode() == KeyEvent.VK_DOWN)
  65.                                         {
  66.                                                 y-=5;
  67.                                         }
  68.                                         if(arg0.getKeyCode() == KeyEvent.VK_LEFT)
  69.                                         {
  70.                                                 x+=5;
  71.                                         }
  72.                                         if(arg0.getKeyCode() == KeyEvent.VK_RIGHT)
  73.                                         {
  74.                                                 x-=5;
  75.                                         }
  76.                                 }
  77.                                 else
  78.                                 {
  79.                                         if(arg0.getKeyCode() == KeyEvent.VK_UP)
  80.                                         {
  81.                                                 y-=5;
  82.                                         }
  83.                                         if(arg0.getKeyCode() == KeyEvent.VK_DOWN)
  84.                                         {
  85.                                                 y+=5;
  86.                                         }
  87.                                         if(arg0.getKeyCode() == KeyEvent.VK_LEFT)
  88.                                         {
  89.                                                 x-=5;
  90.                                         }
  91.                                         if(arg0.getKeyCode() == KeyEvent.VK_RIGHT)
  92.                                         {
  93.                                                 x+=5;
  94.                                         }
  95.                                 }
  96.                                
  97.                                 label.setBounds(x,y,100,100);
  98.                         }
  99.                 });
  100.         }
  101. }
複製代碼

作者: 張健勳    時間: 2018-2-24 11:20

本帖最後由 張健勳 於 2018-3-2 23:12 編輯

package bbs.istak.org.tw;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Image;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import java.awt.Toolkit;

import javax.swing.JLabel;
import javax.swing.ImageIcon;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class Main extends JFrame {

        private JPanel contentPane;
        private ImageIcon icon;
        private int x=100,y=100;

        /**
         * Launch the application.
         */
        public static void main(String[] args) {
                EventQueue.invokeLater(new Runnable() {
                        public void run() {
                                try {
                                        Main frame = new Main();
                                        frame.setVisible(true);
                                } catch (Exception e) {
                                        e.printStackTrace();
                                }
                        }
                });
        }

        /**
         * Create the frame.
         */
        public Main() {
               
                icon = new ImageIcon(Main.class.getResource("mochi.png"));
        Image img = icon.getImage().getScaledInstance(399, 300,  java.awt.Image.SCALE_FAST );
    ImageIcon newIcon = new ImageIcon(img);
               
                setIconImage(Toolkit.getDefaultToolkit().getImage(Main.class.getResource("icon.png")));
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                setBounds(100, 100, 864, 645);
                contentPane = new JPanel();
                contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
                setContentPane(contentPane);
                contentPane.setLayout(null);
               
                JLabel label = new JLabel(newIcon);addKeyListener(new KeyAdapter() {
                        @Override
                        public void keyReleased(KeyEvent e) {
                                if(e.isShiftDown())
                                {
                                        if(e.getKeyCode() == KeyEvent.VK_UP)
                                {
                                        y+=15;
                                }if(e.getKeyCode() == KeyEvent.VK_DOWN)
                                {
                                        y-=15;
                                }if(e.getKeyCode() == KeyEvent.VK_LEFT)
                                {
                                        x+=15;
                                }if(e.getKeyCode() == KeyEvent.VK_RIGHT)
                                {
                                        x-=15;
                                }
                                }else
                                {
                                        if(e.getKeyCode() == KeyEvent.VK_UP)
                                        {
                                                y-=15;
                                        }if(e.getKeyCode() == KeyEvent.VK_DOWN)
                                        {
                                                y+=15;
                                        }if(e.getKeyCode() == KeyEvent.VK_LEFT)
                                        {
                                                x-=15;
                                        }if(e.getKeyCode() == KeyEvent.VK_RIGHT)
                                        {
                                                x+=15;
                                        }
                                }
                                
                                
                                label.setLocation(x,y);
                        }
                });
               
                label.addKeyListener(new KeyAdapter() {
                        @Override
                        public void keyReleased(KeyEvent e) {
                                
                        }
                });
               
                label.setBounds(50, -18, 338, 269);
                contentPane.add(label);
        }
作者: 黃茂勛    時間: 2018-2-24 11:21

  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.         public static void main(String[] args) {
  16.                 EventQueue.invokeLater(new Runnable() {
  17.                         public void run() {
  18.                                 try {
  19.                                         Main frame = new Main();
  20.                                         ImageIcon icon = new ImageIcon(Main.class.getResource("icon.png"));
  21.                                         Image img = icon.getImage().getScaledInstance(45, 45, java.awt.Image.SCALE_FAST);
  22.                                         frame.setIconImage(img);
  23.                                         frame.setVisible(true);
  24.                                 } catch (Exception e) {
  25.                                         e.printStackTrace();
  26.                                 }
  27.                         }
  28.                 });
  29.         }


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

作者: 蔡庭豪    時間: 2018-2-24 11:21

  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 udicon extends JFrame {

  13.         private JPanel contentPane;
  14.         private ImageIcon icon;
  15.     private int x=168,y=24;
  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.                                         udicon frame = new udicon();
  24.                                         frame.setVisible(true);
  25.                                 } catch (Exception e) {
  26.                                         e.printStackTrace();
  27.                                 }
  28.                         }
  29.                 });
  30.         }

  31.         /**
  32.          * Create the frame.
  33.          */
  34.         public udicon() {
  35.                
  36.                
  37.                 setImageIcon("imageicon_2.png");
  38.                
  39.                 icon = new ImageIcon(udicon.class.getResource("imageicon_1.png"));
  40.                 Image img = icon.getImage().getScaledInstance(81,81,java.awt.Image.SCALE_FAST );
  41.                 ImageIcon newicon = new ImageIcon(img);
  42.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  43.                 setBounds(100, 100, 450, 300);
  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);
  50.                 label.setBounds(168, 24, 81, 81);
  51.                 label.setLocation(x, y);
  52.                 contentPane.add(label);
  53.                
  54.                 addKeyListener(new KeyAdapter() {
  55.                         @Override
  56.                         public void keyPressed(KeyEvent e) {
  57.                                 if(e.isShiftDown()){
  58.                                         if(e.getKeyCode()==e.VK_LEFT)
  59.                                                 x+=3;
  60.                                         if(e.getKeyCode()==e.VK_UP)
  61.                                                 y+=3;
  62.                                         if(e.getKeyCode()==e.VK_RIGHT)
  63.                                                 x-=3;       
  64.                                     if(e.getKeyCode()==e.VK_DOWN)
  65.                                             y-=3;
  66.                                     
  67.                                     label.setLocation(x, y);
  68.                                        
  69.                                 }
  70.                                 else{
  71.                                         if(e.getKeyCode()==e.VK_LEFT)
  72.                                         x-=3;
  73.                                 if(e.getKeyCode()==e.VK_UP)
  74.                                         y-=3;
  75.                                 if(e.getKeyCode()==e.VK_RIGHT)
  76.                                         x+=3;       
  77.                             if(e.getKeyCode()==e.VK_DOWN)
  78.                                     y+=3;
  79.                             
  80.                             label.setLocation(x, y);
  81.                         }
  82.                         }});
  83.                                        
  84.                                
  85.                                
  86.                
  87.         }

  88.         private void setImageIcon(String string) {
  89.                 // TODO 自動產生的方法 Stub
  90.                
  91.         }
  92. }
複製代碼

作者: 林侑成    時間: 2018-2-24 11:27

  1. package asdf;

  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.GroupLayout;
  10. import javax.swing.GroupLayout.Alignment;
  11. import javax.swing.JLabel;
  12. import java.awt.event.KeyAdapter;
  13. import java.awt.event.KeyEvent;


  14. public class Asdf extends JFrame {

  15.         private JPanel contentPane;
  16.         private int x=100;
  17.         private int y=100;

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

  33.         /**
  34.          * Create the frame.
  35.          */
  36.         public Asdf() {
  37.                 setTitle("\u6309\u65B9\u5411\u9375\u79FB\u52D5\u5716\u5F62");
  38.                 ImageIcon icon = new ImageIcon(Asdf.class.getResource("icon.png"));
  39.                 Image img = icon.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  40.         setIconImage(img);
  41.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  42.                 setBounds(100, 100, 400, 400);
  43.                 contentPane = new JPanel();
  44.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  45.                 setContentPane(contentPane);
  46.                 contentPane.setLayout(null);
  47.                 ImageIcon imgbaby = new ImageIcon(Asdf.class.getResource("baby.png"));
  48.                 Image baby = imgbaby.getImage().getScaledInstance(100,100,Image.SCALE_FAST);
  49.                 ImageIcon babyicon = new ImageIcon(baby);
  50.                 JLabel label = new JLabel(babyicon);
  51.                 label.setBounds(150, 150, 100, 100);
  52.                 contentPane.add(label);
  53.                
  54.                 addKeyListener(new KeyAdapter()
  55.                 {
  56.                         @Override
  57.                         public void keyPressed(KeyEvent arg0)
  58.                         {
  59.                                 if(arg0.isShiftDown())
  60.                                 {
  61.                                         if(arg0.getKeyCode() == KeyEvent.VK_UP)
  62.                                         {
  63.                                                 y+=5;
  64.                                         }
  65.                                         if(arg0.getKeyCode() == KeyEvent.VK_DOWN)
  66.                                         {
  67.                                                 y-=5;
  68.                                         }
  69.                                         if(arg0.getKeyCode() == KeyEvent.VK_LEFT)
  70.                                         {
  71.                                                 x+=5;
  72.                                         }
  73.                                         if(arg0.getKeyCode() == KeyEvent.VK_RIGHT)
  74.                                         {
  75.                                                 x-=5;
  76.                                         }
  77.                                 }
  78.                                 else
  79.                                 {
  80.                                         if(arg0.getKeyCode() == KeyEvent.VK_UP)
  81.                                         {
  82.                                                 y-=5;
  83.                                         }
  84.                                         if(arg0.getKeyCode() == KeyEvent.VK_DOWN)
  85.                                         {
  86.                                                 y+=5;
  87.                                         }
  88.                                         if(arg0.getKeyCode() == KeyEvent.VK_LEFT)
  89.                                         {
  90.                                                 x-=5;
  91.                                         }
  92.                                         if(arg0.getKeyCode() == KeyEvent.VK_RIGHT)
  93.                                         {
  94.                                                 x+=5;
  95.                                         }
  96.                                 }                                
  97.                                 label.setBounds(x,y,100,100);
  98.                         }
  99.                 });
  100.         }
  101. }
複製代碼





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