我是Java Swing的新手。
我有两个Java文件。一个包含main()的文件是GUI文件。

客户

class Client
{
    GUI gui;
    public static void main(String args[])
    {
        //.......... do something.......
        gui = new GUI();
        // at thin point I want to have value of gui.s1 ....
        //but main() actually do not wait for the user input.
    }
}


图形用户界面

class GUI extends JFrame implements ActionListener
{
    String s1="";

    GUI()
    {
        JTextField t1= new JTextField(20);
        JButton j1= new JButton("submit");
        j1.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e)
    {
        s1=t1.getText();
    }
}


请指导我,如果不合适的话,请给我建议您认为应该读懂的文章。

最佳答案

现在,我正在打电话,所以我无法为您提供代码方面的帮助,我将尽力让您理解这个概念:用户输入,按钮单击是5秒钟后就会发生的事情,就像30分钟后会发生一样。所以是的,您有时可以让主设备进入休眠状态,并希望有一个输入,等到.s1得到一个值等等。

但是,我不认为这是正确的做法。可以使用的最好的方法是在用户单击按钮时调用的回调。使用接口完成。

好吧,首先,您声明一个可能名为OnRequestClick的接口,在其中实现onRequestClick(String message);方法。

消息将是s1的文本。

现在,在GUI类中,创建一个名称为listener的OnRequestClick类型的新字段,并将其放入构造函数中。

现在,在创建GUI对象的地方,编译器会要求您提供OnRequestClick的代码,因此,当用户按下tbe按钮时,它将执行该代码。

好吧,现在我所说的确实是错误的:因为我们没有对listener.onRequestClick()进行任何调用,所以它不会被解雇

因此,在您的actionPerformed中添加listener.onRequestClick(s1.getText());因此在您的主要语言中,您将获得ebemt和文本。

关于java - 如何暂停具有main()的程序,直到按下GUI中的按钮?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23048925/

10-12 23:43