⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exercise12_7.java

📁 Introduction to java programming 一书中所有编程练习部分的源码
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Exercise12_7 extends JFrame {
  private DrawMaze mazePanel = new DrawMaze();

  public Exercise12_7() {
    // Add the keyboard panel to accept and display user input
    getContentPane().add(mazePanel);

    // Set focus
    mazePanel.setFocusable(true);
  }

  public static void main(String[] args) {
    Exercise12_7 frame = new Exercise12_7();
    frame.setTitle("Exercise12_7");
    frame.setSize(350, 150);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }
}

class DrawMaze extends JPanel implements KeyListener {
  int x, y, previousX, previousY;

  public DrawMaze() {
    addKeyListener(this); // Register listener
  }

  public void keyReleased(KeyEvent e) {
  }

  public void keyTyped(KeyEvent e) {
  }

  public void keyPressed(KeyEvent e) {
    switch (e.getKeyCode()) {
      case KeyEvent.VK_DOWN:
        previousY = y;
        previousX = x;
        y += 10;
        break;
      case KeyEvent.VK_UP:
        previousY = y;
        previousX = x;
        y -= 10;
        break;
      case KeyEvent.VK_LEFT:
        previousX = x;
        previousY = y;
        x -= 10;
        break;
      case KeyEvent.VK_RIGHT:
        previousX = x;
        previousY = y;
        x += 10;
    }

    repaint();
  }

  boolean firstTime = true;

  /** Draw the character */
  protected void paintComponent(Graphics g) {
    if (firstTime) {
      x = previousX = getWidth() / 2;
      y = previousY = getHeight() / 2;
      firstTime = false;
    }

    g.drawLine(previousX, previousY, x, y);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -