当前位置: 首页 > 面试题库 >

如何等待文本字段中的输入?

葛成济
2023-03-14
问题内容

我正在将一个控制台应用程序转换为使用Swing的应用程序。目前,我希望我的程序执行与此类似的操作,.nextInt();如何通过使用.getText();或类似方法实现此目标?

简而言之;

在用户在文本字段中输入内容并按Enter之前,如何保持程序的执行。


问题答案:

更新: 因此,您要等待用户从GUI输入内容。这是可能的,但由于GUI在另一个线程中运行,因此需要进行 同步

因此,步骤如下:

  1. 创建一个“ holder”对象,将图形用户界面的结果委托给“逻辑”线程
  2. “逻辑”线程等待输入(使用holder.wait()
  3. 用户输入文本后,它将同步“ holder”对象并给出结果+通知“逻辑”线程(带有holder.notify()
  4. “逻辑”线程从其锁定中释放并继续。

完整示例:

public static void main(String... args) throws Exception {
    final List<Integer> holder = new LinkedList<Integer>();

    final JFrame frame = new JFrame("Test");

    final JTextField field = new JTextField("Enter some int + press enter");
    frame.add(field);
    field.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            synchronized (holder) {
                holder.add(Integer.parseInt(field.getText()));
                holder.notify();
            }
            frame.dispose();
        }
    });

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);

    // "logic" thread 
    synchronized (holder) {

        // wait for input from field
        while (holder.isEmpty())
            holder.wait();

        int nextInt = holder.remove(0);
        System.out.println(nextInt);
        //....
    }
}


 类似资料:
  • 问题内容: 我的JavaScript代码是这样的: 看这里 : 我在文本输入中添加了必填项。但这不起作用如果文本输入为空,则当我单击“提交”时,不需要任何消息 有解决我问题的方法吗? 非常感谢你 问题答案: 您必须做三件事: 确保桌子周围有表格 移动之类的了 将按钮类型从更改为 查看演示- 小提琴

  • 问题内容: 我们有一个Web应用程序,我正在尝试使用Java,Web Driver和TestNG对其进行自动化测试。我面临的最大挑战(失败)是保持开发领先地位,并防止测试框架即使进行很小的代码更改就不会破坏。 问题 有一个接受数字的文本字段。到现在为止,为我完成了工作。 在页面源的最新更改中,输入数字后,逗号会自动插入。 因此,例如,“ 50000”变为“ 50,000”。 现在可以正确输入该值,

  • 在我试图制作的一个程序中,有三个文本字段和几个按钮(每个按钮代表一个数字)。我正在尝试获取它,这样你就可以通过点击按钮(而不是键盘)来打字了。到目前为止,我得到了这个: 在搜索互联网后,我发现了以下代码: 唯一的问题是,我不知道如何使用我找到的代码(我找到的代码是第二个块)。 我从哪里得到密码的。

  • 问题内容: 当我在文本字段中输入文本时,它将被删除。 这是代码: 问题答案: 同意Subir Kumar Sao和Faiz。

  • 当我在文本字段中输入文本时,它会被删除。 代码如下:

  • 驱动程序的fire中有一个bug。使用chrome驱动解决了这个问题。 代码 我试过联系搜索。clear()和click()方法,但输入仍然为空。代码来自https://web.whatsapp.com/登录后会出现一个名为“搜索”或“开始新聊天”的字段。我想在该字段中输入文本。