如果你想,就按ENTER一个JTextField
内执行的JButton
的一些actionPerformed()
方法,那么我想你可以使用doClick(),方法从AbstractButton
类做到这一点。虽然这种做法,可能可以覆盖的ENTER键 :(
请看看这段代码粘贴下面按JTextField
的原始行为,看看这是什么,代表适合您的需要: - )!!!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ButtonClickExample
{
private JTextField tfield;
private JButton button;
private JLabel label;
private ActionListener actions = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent ae)
{
if (ae.getSource() == button)
{
label.setText(tfield.getText());
}
else if (ae.getSource() == tfield)
{
button.doClick();
}
}
};
private void displayGUI()
{
JFrame frame = new JFrame("Button Click Example");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel contentPane = new JPanel();
contentPane.setLayout(new BorderLayout(5, 5));
JPanel centerPanel = new JPanel();
tfield = new JTextField("", 10);
button = new JButton("Click Me or not, YOUR WISH");
tfield.addActionListener(actions);
button.addActionListener(actions);
centerPanel.add(tfield);
centerPanel.add(button);
contentPane.add(centerPanel, BorderLayout.CENTER);
label = new JLabel("Nothing to show yet", JLabel.CENTER);
contentPane.add(label, BorderLayout.PAGE_END);
frame.setContentPane(contentPane);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
new ButtonClickExample().displayGUI();
}
});
}
}
,如果你想在执行方法调用然后移动你不应该这样做应用程序逻辑到另一种方法并称之为处理事件是一项EDT工作。 – 2013-04-27 09:56:58
让ActionListener执行它的工作有什么问题?这是'ActionListener'为'doClick()'执行的无论如何 – MadProgrammer 2013-04-27 10:18:19