怎样给Jpanel加监听事件
2个回答
展开全部
我写了个小例子,是键盘监听的,这也是JPanel最特殊的一个监听,希望对你有帮助。
package net.miqiang.gui;
import java.awt.BorderLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* 给JPanel添加KeyListener监听实例
* @author 米强
*
*/
public class Test extends JFrame {
private JLabel label = null;
public Test() {
super("给JPanel添加KeyListener监听");
label = new JLabel("Key:", JLabel.CENTER);
JPanel pane = new JPanel();
// 给JPanel对象添加了KeyListener事件监听
pane.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
// 将按键字符显示在JLabel标签中
label.setText("Key:" + String.valueOf(e.getKeyChar()));
}
});
getContentPane().add(pane);
getContentPane().add(label, BorderLayout.NORTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
setLocationRelativeTo(null);
setVisible(true);
// KeyListener监听必需在窗体显示之后调用requestFocus方法使其获得焦点,否则KeyListener事件无法触发,鼠标点击事件、拖动事件等则不需要。
pane.requestFocus();
}
public static void main(String[] args) {
new Test();
}
}
package net.miqiang.gui;
import java.awt.BorderLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* 给JPanel添加KeyListener监听实例
* @author 米强
*
*/
public class Test extends JFrame {
private JLabel label = null;
public Test() {
super("给JPanel添加KeyListener监听");
label = new JLabel("Key:", JLabel.CENTER);
JPanel pane = new JPanel();
// 给JPanel对象添加了KeyListener事件监听
pane.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
// 将按键字符显示在JLabel标签中
label.setText("Key:" + String.valueOf(e.getKeyChar()));
}
});
getContentPane().add(pane);
getContentPane().add(label, BorderLayout.NORTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
setLocationRelativeTo(null);
setVisible(true);
// KeyListener监听必需在窗体显示之后调用requestFocus方法使其获得焦点,否则KeyListener事件无法触发,鼠标点击事件、拖动事件等则不需要。
pane.requestFocus();
}
public static void main(String[] args) {
new Test();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询