Java 为什么小程序上显示的文本不';“不改变”;“按下键”;或;keyup“;事件?
我想将显示的字符串从“start”更改为“keyup”或“keydown”,但字符串似乎没有更改Java 为什么小程序上显示的文本不';“不改变”;“按下键”;或;keyup“;事件?,java,applet,keydown,japplet,keyup,Java,Applet,Keydown,Japplet,Keyup,我想将显示的字符串从“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(Grap
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;
}
}
KeyListener
//
导入java.awt.event.*;
导入java.awt.*;
导入javax.swing.JApplet;
公共类KeyApplet扩展了JApplet,实现了KeyListener{
String str=“开始…”;
公共void init(){
设置聚焦(真);
requestFocusInWindow();
addKeyListener(此);
挫折地面(颜色:黄色);
}
公共空间涂料(图g){
超级油漆(g);
g、 setColor(getBackground());
g、 fillRect(0,0,getWidth(),getHeight());
g、 设置颜色(颜色为黑色);
g、 抽绳(str,20,20);
}
public void keyTyped(KeyEvent evt){}
按下公共无效键(KeyEvent evt){
str=“keyDown”;
重新油漆();
}
公共无效密钥已释放(密钥事件evt){
str=“keyUp”;
重新油漆();
}
}
我不明白您想说什么?另外,您不想将类命名为“Applet”,因为这已经是核心Java类的名称。为了避免现在让别人困惑,更重要的是你自己,你需要给它一个更独特的名字。另外,我猜您希望您的程序对按键和释放做出响应,但除非您告诉我们,并向我们展示您为实现此行为而编写的代码,否则我们无法确定。如果是这样的话,您是否看过Java Swing教程中关于如何响应关键事件的内容,包括如何编写关键侦听器和使用关键绑定?+1表示建议关键绑定-1用于重写paint()方法的SSCE,因为自定义绘制应通过重写JPanel(或JComponent)的paintComponent()方法完成,然后将面板添加到小程序。@camickr Fair call。我曾考虑将这幅画分解成一个面板,但我想先弄清楚基本原理。
// <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();
}
}