キーボード イベントを Java アプレットに取り込もうとしている単純なコードがいくつかあります。このコードは、appletviewer で実行すると問題なく動作しますが、ブラウザーからロードすると (Chrome と Firefox の両方を試しました)、JApplet はクリックにフォーカスしません。
JApplet の代わりに Applet を使用してまったく同じコードを試しても、問題なく動作します。
これが私のコードです:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends JApplet {
String s = "";
public void init() {
setFocusable(true);
setEnabled(true);
addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
s = "KEY PRESSED: " + e.getKeyCode();
repaint();
}
});
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
boolean ret = requestFocusInWindow();
s = "requestFocusInWindow: " + ret;
repaint();
}
});
requestFocusInWindow();
}
public void start() {
requestFocusInWindow();
}
public void paint(Graphics g) {
super.paint(g);
requestFocusInWindow();
g.setColor(Color.BLACK);
s = "Focus owner: " + isFocusOwner() + ", " + s;
g.drawString(s, 24, 24);
}
}