java提交按钮_java – 允许“Enter”键按提交按钮,而不是仅使用MouseClick

我正在学习Swing类和一切。我有一个玩具程序,我一直在一起提示一个名字,然后提出一个JOptionPane消息“你输入(您的名字)”。

我使用的提交按钮只能点击,但我想让它使用输入按钮。我试过添加一个KeyListener,正如在我使用的Java书中推荐的(Eventful Java,Bruce Danyluk和Murtagh)。

这是我的代码:

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class NamePrompt extends JFrame{

private static final long serialVersionUID = 1L;

String name;

public NamePrompt(){

setLayout(new BorderLayout());

JLabel enterYourName = new JLabel("Enter Your Name Here:");

JTextField textBoxToEnterName = new JTextField(21);

JPanel panelTop = new JPanel();

panelTop.add(enterYourName);

panelTop.add(textBoxToEnterName);

JButton submit = new JButton("Submit");

submit.addActionListener(new SubmitButton(textBoxToEnterName));

submit.addKeyListener(new SubmitButton(textBoxToEnterName));

JPanel panelBottom = new JPanel();

panelBottom.add(submit);

//Add panelTop to JFrame

add(panelTop, BorderLayout.NORTH);

add(panelBottom, BorderLayout.SOUTH);

//JFrame set-up

setTitle("Name Prompt Program");

setDefaultCloseOperation(EXIT_ON_CLOSE);

pack();

setLocationRelativeTo(null);

}

public static void main(String[] args) {

NamePrompt promptForName = new NamePrompt();

promptForName.setVisible(true);

}

}

这是actionListener,keyListener类:

import java.awt.Component;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JTextField;

public class SubmitButton implements ActionListener, KeyListener {

JTextField nameInput;

public SubmitButton(JTextField textfield){

nameInput = textfield;

}

@Override

public void actionPerformed(ActionEvent submitClicked) {

Component frame = new JFrame();

JOptionPane.showMessageDialog(frame , "You've Submitted the name " + nameInput.getText());

}

@Override

public void keyPressed(KeyEvent e) {

if (e.getKeyCode()==KeyEvent.VK_ENTER){

System.out.println("Hello");

}

Component frame = new JFrame();

JOptionPane.showMessageDialog(frame , "You've Submitted the name " + nameInput.getText());

}

@Override

public void keyReleased(KeyEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void keyTyped(KeyEvent arg0) {

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值