0

我想将显示的字符串从“start”更改为“keyup”或“keydown”,但字符串似乎没有改变..

import java.awt.Event;
import java.awt.Graphics;
import javax.swing.JApplet;

public class Applet extends JApplet {
    String str = "start..";
    public void init() {
    }
    public void paint(Graphics g) {
        g.drawString(str, 200, 200);
    }
    public boolean keyDown(Event evt , int key) {
        str = "keyDown";
        repaint();

        return true;
    }
    public boolean keyUp(Event evt , int key) {
        str = "keyUp";

        return true;
    }
}
4

1 回答 1

1
  1. 不要使用Java 1.1 中已弃用的方法。而是实现KeyListener或使用键绑定
  2. 确保小程序可聚焦并具有输入焦点。

EG使用KeyListener

小程序

// <applet code='KeyApplet' width=200 height=40></applet>
import java.awt.event.*;
import java.awt.*;
import javax.swing.JApplet;

public class KeyApplet extends JApplet implements KeyListener {

    String str = "start..";

    public void init() {
        setFocusable(true);
        requestFocusInWindow();
        addKeyListener(this);
        setBackground(Color.yellow);
    }

    public void paint(Graphics g) {
        super.paint(g);
        g.setColor(getBackground());
        g.fillRect(0,0,getWidth(),getHeight());
        g.setColor(Color.black);
        g.drawString(str, 20, 20);
    }

    public void keyTyped(KeyEvent evt) {}

    public void keyPressed(KeyEvent evt) {
        str = "keyDown";
        repaint();
    }

    public void keyReleased(KeyEvent evt) {
        str = "keyUp";
        repaint();
    }
}
于 2012-01-08T15:13:39.260 回答