首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java语言。如何等待?

Java语言。如何等待?
EN

Stack Overflow用户
提问于 2012-03-12 22:23:21
回答 5查看 2.9K关注 0票数 1

我调用一个创建jframe的类,等待用户输入一些值。我遇到的问题是,我需要等待这些值才能继续。所以代码很简单,如下所示

代码语言:javascript
复制
Jframe frame= new jframe(); //here I want the program to show the frame and then wait till   it will be disposed
// I want a pause here 
System.out.println(frame.getvalue);

到目前为止,我唯一能做的就是冻结画面,然后才能完全显示出来。有什么帮助吗?请保持简单,因为我是Java新手。谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-12 22:27:48

我认为你应该使用JDialog而不是JFrame。请遵循此example

票数 10
EN

Stack Overflow用户

发布于 2012-03-12 22:54:30

您可能正在寻找的是JOptionPane。这是一个阻塞例程,仅在用户输入某个值后才返回,如下所示:

代码语言:javascript
复制
public class test
{
  public static void main ( String args[] )
  {
      String input = JOptionPane.showInputDialog(null, "Thing: ",
                    "Enter Stuff", JOptionPane.OK_CANCEL_OPTION);

      System.out.println ( "won't reach until got input");
      System.out.println ( "My value: " + input );
  }
}

它的伟大之处在于您可以向其添加组件,因此您不再局限于单个输入字段,但它仍然是阻塞的。下面的代码将向帧中添加两个JTextField:

代码语言:javascript
复制
public class test
{
    public static void main ( String args[] )
    {
        JTextField input_box = new JTextField(7);
        JTextField input_box2 = new JTextField(7);

        JComponent[] inputs = new JComponent[] {
            new JLabel("Thing 1:"),
            input_box,
            new JLabel("Thing 2:"),
            input_box2 };

        int rval = JOptionPane.showConfirmDialog(null, inputs,
                    "Enter Stuff", JOptionPane.OK_CANCEL_OPTION);

        if ( rval == 0)
        {
           System.out.printf ("%s and %s!", input_box.getText(),
                                         input_box2.getText());
        }
    }
}
票数 5
EN

Stack Overflow用户

发布于 2012-03-12 22:28:27

考虑使用modality设置为true的JDialog,而不是使用JFrame

当需要添加一个'OK‘按钮或类似的东西时,请查看JRootPane.setDefaultButton()

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9668862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档