java中如何输入文本_java – 如何在文本字段中等待输入?

更新:所以你想等待用户从GUI输入内容.这是可能的,但需要同步,因为GUI在另一个线程中运行.

所以步骤是:

>创建一个“holder”对象,将结果从GUI分配到“逻辑”线程

>“逻辑”线程等待输入(使用holder.wait())

>当用户输入文本时,它同步“holder”对象并给出结果通知“逻辑”线程(使用holder.notify())

>“逻辑”线程从其锁定中释放并继续.

完整示例:

public static void main(String... args) throws Exception {

final List holder = new LinkedList();

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);

//....

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值