我想在JButton上添加一个Key事件,按下回车时有反映
但是写了半天实现不了
谁能帮我写个简单的例子
----------------解决方案--------------------------------------------------------
你把你的代码贴上来!
----------------解决方案--------------------------------------------------------
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);
}
}
我想在按下回车键的时候也跟点击鼠标一样产生事件
----------------解决方案--------------------------------------------------------
keyTyped事件只有在输入的时候才会发生,一般用于JTextField,JTextArea,等文本输入区的监听,用于普通组件是没有用的
并且你按钮要监听这个干嘛,按下去本身不就是ActionEvent吗?
至于你按回车钮也产生点击一样的,是因为你的按钮得到输入焦点,你按回车键等于点了一下按钮,这也是按钮应该具备的功能
----------------解决方案--------------------------------------------------------
在一个按钮上难道加一个键盘事件难道没有意义吗?
----------------解决方案--------------------------------------------------------
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);
}
}
----------------解决方案--------------------------------------------------------
在一个按钮上难道加一个键盘事件难道没有意义吗?
那 是一点意义都没有
----------------解决方案--------------------------------------------------------
public void keyTyped(KeyEvent e)
{
}
在这里面怎么实现
----------------解决方案--------------------------------------------------------
public void keyTyped(KeyEvent e)
{
它只在你输入的时候会调用,一般的组件是不是调用的
----------------解决方案--------------------------------------------------------