标题:KeyListener接口怎么实现啊?
只看楼主
WestNet
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2006-10-31
 问题点数:0 回复次数:9 
KeyListener接口怎么实现啊?

我想在JButton上添加一个Key事件,按下回车时有反映
但是写了半天实现不了
谁能帮我写个简单的例子

搜索更多相关主题的帖子: KeyListener 接口 JButton 例子 回车 
2007-01-08 14:16
神经塔
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1986
专家分:4
注 册:2006-7-1
得分:0 

你把你的代码贴上来!


[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]
2007-01-08 15:26
WestNet
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2006-10-31
得分:0 

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
class randomDemo extends JFrame {
int number ;
Container c;
JButton b;
JLabel la;
String s;
public randomDemo()
{
this.setTitle("random number");
c = this.getContentPane();
c.setLayout(new BorderLayout());
Lis l = new Lis();
b = new JButton("产生一个0~100的随机数");
b.addActionListener(l);
b.addKeyListener(l);
la = new JLabel();
number = new Random().nextInt()%10;
c.add(la,BorderLayout.NORTH);
c.add(b,BorderLayout.SOUTH);
this.setBounds(400,200,250,150);

}
class Lis implements ActionListener,KeyListener {
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b)
{
check();
}
}
public void keyPressed(KeyEvent e) {

}
public void keyReleased(KeyEvent e) {

}
public void keyTyped(KeyEvent e) {
System.out.println(e.getKeyCode());
System.out.println(e.VK_ENTER);
if(e.getKeyCode()==e.VK_ENTER)
{
check();
}
}
}

public void check(){
number = Math.abs(new Random().nextInt()%100);
s = new String("随机数是:"+number);
la.setText(s);
}
public static void main(String []args)
{

randomDemo r= new randomDemo();
r.setVisible(true);


}
}
我想在按下回车键的时候也跟点击鼠标一样产生事件

不灰心等待,痛苦也忍耐。
2007-01-08 15:38
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
keyTyped事件只有在输入的时候才会发生,一般用于JTextField,JTextArea,等文本输入区的监听,用于普通组件是没有用的

并且你按钮要监听这个干嘛,按下去本身不就是ActionEvent吗?

至于你按回车钮也产生点击一样的,是因为你的按钮得到输入焦点,你按回车键等于点了一下按钮,这也是按钮应该具备的功能

可惜不是你,陪我到最后
2007-01-08 15:52
WestNet
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2006-10-31
得分:0 
在一个按钮上难道加一个键盘事件难道没有意义吗?

不灰心等待,痛苦也忍耐。
2007-01-08 16:10
禹_二
Rank: 1
等 级:新手上路
帖 子:661
专家分:0
注 册:2006-9-13
得分:0 

package p1;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
class randomDemo extends JFrame {
int number ;
Container c;
JButton b;
JLabel la;
String s;
public randomDemo()
{
this.setTitle("random number");
c = this.getContentPane();
c.setLayout(new BorderLayout());
Lis l = new Lis();
b = new JButton("产生一个0~100的随机数");
b.addActionListener(l);
b.addKeyListener(l);
la = new JLabel();
number = new Random().nextInt()%10;
c.add(la,BorderLayout.NORTH);
c.add(b,BorderLayout.SOUTH);
this.setBounds(400,200,250,150);

}
class Lis implements ActionListener,KeyListener {
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b)
{
check();
}
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==e.VK_ENTER)
{
check();
}
}
public void keyReleased(KeyEvent e) {

}
public void keyTyped(KeyEvent e) {
// System.out.println(e.getKeyCode());
// System.out.println(e.VK_ENTER);

}
}

public void check(){
number = Math.abs(new Random().nextInt()%100);
s = new String("随机数是:"+number);
la.setText(s);
}
public static void main(String []args)
{

randomDemo r= new randomDemo();
r.setVisible(true);


}
}


2007-01-08 17:09
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
以下是引用WestNet在2007-1-8 16:10:59的发言:
在一个按钮上难道加一个键盘事件难道没有意义吗?

那 是一点意义都没有


可惜不是你,陪我到最后
2007-01-08 17:49
WestNet
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2006-10-31
得分:0 
public void keyTyped(KeyEvent e)
{

}
在这里面怎么实现

不灰心等待,痛苦也忍耐。
2007-01-08 17:50
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

public void keyTyped(KeyEvent e)
{

它只在你输入的时候会调用,一般的组件是不是调用的


可惜不是你,陪我到最后
2007-01-08 17:50
Fatemissv
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-6-29
得分:0 
编写小程序,实现KeyListener接口,键盘敲击事件。
 (敲击键盘上的数字键k、m、x时,分别把小程序的背景颜色设置为红色、蓝色、绿色:如果敲击其他键,则小程序背景颜色设置为黑色。)
求大神指教
2015-06-29 22:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-114893-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050861 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved