为什么小程序上显示的文本在“keydown”时没有改变?或“keyup”事件?

发布于 2024-12-26 02:56:36 字数 560 浏览 7 评论 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;
    }
}

I wanted to change the displayed string from "start" to "keyup" or "keydown" but the string doesnt seem to change..

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;
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空袭的梦i 2025-01-02 02:56:36
  1. 不要使用 Java 1.1 中已弃用的方法。 而是实现 KeyListener 或使用 键绑定
  2. 确保小程序是可聚焦的并且有输入焦点。

EG 使用 KeyListener

KeyApplet

// <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();
    }
}
  1. Don't use methods that were deprecated in Java 1.1. Instead implement a KeyListener or use key bindings.
  2. Ensure the applet is focusable & has the input focus.

E.G. using KeyListener

KeyApplet

// <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();
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文