从jTextField运行操作

时间:2014-09-07 17:13:54

标签: java swing user-interface text jtextfield

我正在使用Java创建程序的接口(使用Netbeans),我有一个文本字段,用户在其中键入要执行的程序的命令。问题是我在文本字段下方还有一个按钮,它应该与输入命令后按下输入相同。 那么基本上我如何从按钮上的文本字段“运行”动作?我只是不想再次复制和粘贴代码。我尝试了jTextField1对象中的许多方法,但没有一个帮助过我。我知道这可能是愚蠢但请帮助我!

1 个答案:

答案 0 :(得分:2)

  

"问题是我在文本字段下面还有一个按钮,它应该与输入命令后按下输入相同,"

请参阅How to use Actions

  

Action可用于将功能和状态与组件分开。例如,如果您有两个或多个执行相同功能的组件,请考虑使用Action对象来实现该功能。 Action对象是action listener,不仅可以提供操作事件处理,还可以集中处理动作状态 - 事件触发组件,例如tool bar buttonsmenu itemscommon buttonstext fields。操作可以处理的状态包括文本,图标,助记符,已启用和已选择状态。

示例:

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import javax.swing.*;

public class AddJarDemo {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                final JTextField field = new JTextField(15);
                Action action = new AbstractAction("Hello Action"){
                    public void actionPerformed(ActionEvent e) {
                        System.out.println(field.getText());
                    }
                };
                field.setAction(action);
                JButton button = new JButton(action);
                JPanel panel = new JPanel(new GridLayout(0, 1));
                panel.add(field);
                panel.add(button);
                JOptionPane.showMessageDialog(null, panel);
            }
        });
    }
}