-2
キャンバスをコピーして変更し、KeyListenerインターフェイスを実装し、独自のKeyListenerとして追加し、キーボードフォーカスを受け取るためにsetFocusable(true)を呼び出します。キーが入力されると、プログラムは対応する文字をキャンバスの最後のマウスイベントの位置に描画する必要があります(KeyEvent.getKeyChar()を参照)。マウスをクリックせずに別のキーを入力した場合は、テキストフィールドに入力した場合と同じように、次の文字を の直前に描画します。繰り返しますが、これを行うためにどのような状態を維持する必要があるかを考えてください。完璧である必要はありません(好きな場合は、文字の幅をハードコードすることができます)。キャンバスに文字を表示する方法
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class Canvas05 extends JComponent implements KeyListener {
public Canvas05() {
addKeyListener(this);
setFocusable(true);
}
@Override
public void keyTyped(KeyEvent e) {
System.out.print(e.getKeyChar());
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
public static void main (String[] args){
Canvas05 c = new Canvas05();
JFrame frame = new JFrame("Q05");
frame.add(c);
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
これは答えではありません。 –