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で廃止されたメソッドは使用しないでください。代わりに a を実装する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 に答える