我正在研究事件处理并执行了以下操作:
创建了一个没有任何组件的 JFrame
我以这样一种方式覆盖了 keyPressed() 方法,即每当从键盘按下一个键时,一个按钮应该出现在框架中(通过使用 add() 然后调用 repaint())。 现在我想问的是,在从键盘按下键时,框架中没有添加任何内容,但是在我调整框架窗口大小时按下键后,按钮从框架中的任何地方都出来了.. .. 发生了什么事?
import java.awt.*; import java.awt.event.*; import javax.swing.*; class MyFrame extends JFrame implements KeyListener { private JButton bt=new JButton(); MyFrame() { addKeyListener(this); } public void keyPressed(KeyEvent ke) { this.add(bt); repaint(); } public void keyTyped(KeyEvent ke) { } public void keyReleased(KeyEvent ke) { } } public class MyClass /*class containing the main method*/ { public static void main(String args[]) { MyFrame frm=new MyFrame(); frm.setVisible(true); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }