Cara Membuat Imej Bergerak Semasa Mendengar Penekanan Kekunci di Java
Di Jawa, anda boleh menggunakan gabungan Pemasa Swing dan Kunci Pengikatan untuk membuat imej bergerak sambil mendengar penekanan kekunci. Begini caranya:
Contoh Kod:
Berikut ialah contoh kod yang menunjukkan cara menggunakan Pemasa Ayunan dan Pengikatan Kekunci untuk membuat pergerakan imej sambil mendengar penekanan kekunci:
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ImageMoveOnKeyPress extends JPanel implements ActionListener { private Image image; // The image to be moved private int x, y; // The current position of the image private Timer timer; // The Swing Timer to update the image position private KeyBindings keyBindings; // The Key Bindings to detect keypresses public ImageMoveOnKeyPress() { // Load the image image = Toolkit.getDefaultToolkit().getImage("image_path"); // Set the initial position of the image x = 50; y = 50; // Create a Swing Timer to update the image position timer = new Timer(10, this); // 10 milliseconds delay timer.start(); // Create Key Bindings to detect keypresses keyBindings = new KeyBindings(); getInputMap().put(KeyEvent.VK_LEFT, "left"); getInputMap().put(KeyEvent.VK_RIGHT, "right"); getInputMap().put(KeyEvent.VK_UP, "up"); getInputMap().put(KeyEvent.VK_DOWN, "down"); getActionMap().put("left", keyBindings.new MoveLeftAction()); getActionMap().put("right", keyBindings.new MoveRightAction()); getActionMap().put("up", keyBindings.new MoveUpAction()); getActionMap().put("down", keyBindings.new MoveDownAction()); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, x, y, null); } @Override public void actionPerformed(ActionEvent e) { // Update the image position based on keypress if (keyBindings.isLeftPressed()) { x -= 1; } else if (keyBindings.isRightPressed()) { x += 1; } else if (keyBindings.isUpPressed()) { y -= 1; } else if (keyBindings.isDownPressed()) { y += 1; } // Repaint the panel to display the moved image repaint(); } private class KeyBindings { private boolean leftPressed, rightPressed, upPressed, downPressed; public boolean isLeftPressed() { return leftPressed; } public void setLeftPressed(boolean leftPressed) { this.leftPressed = leftPressed; } public boolean isRightPressed() { return rightPressed; } public void setRightPressed(boolean rightPressed) { this.rightPressed = rightPressed; } public boolean isUpPressed() { return upPressed; } public void setUpPressed(boolean upPressed) { this.upPressed = upPressed; } public boolean isDownPressed() { return downPressed; } public void setDownPressed(boolean downPressed) { this.downPressed = downPressed; } private class MoveLeftAction extends AbstractAction { @Override public void actionPerformed(ActionEvent e) { leftPressed = true; } } private class MoveRightAction extends AbstractAction { @Override public void actionPerformed(ActionEvent e) { rightPressed = true; } } private class MoveUpAction extends AbstractAction { @Override public void actionPerformed(ActionEvent e) { upPressed = true; } } private class MoveDownAction extends AbstractAction { @Override public void actionPerformed(ActionEvent e) { downPressed = true; } } } public static void main(String[] args) { JFrame frame = new JFrame();
Atas ialah kandungan terperinci Bagaimana untuk Memindahkan Imej dalam Java Berdasarkan Penekanan Kekunci?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!