下面是从用户输入代理设置的代码。
public static void setProxy()
{
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new proxy().setVisible(true);
}
});
// Control should halt here till user gives input as it assigns value to the variables
String host = prox;
String port = prt;
System.out.println("Using proxy: " + host + ":" + port);
你做得不对。GUI应用程序的主要方法应该只做一件事:启动GUI。其余的逻辑将由与GUI交互的用户触发的事件触发。
因此,假设您的GUI显示一个框架,其中包含两个文本字段,用于输入主机和端口,以及一个用于继续的按钮,那么在GUI中,按钮上应该有一个操作侦听器:proceedButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String host = hostTextField.getText();
String port = portTextField.getText();
doSomethingWithHostAndPort(host, port);
}
});
如果doSomethingWithHostAndPort()
做了一些很长的事情,那么它应该在一个单独的线程中完成,以避免冻结GUI。
如果你想要一个确切的答案,你需要提供更多的信息。但我要做一些假设,你有一个按钮在输入信息后被按下,这个按钮有一个on click事件附加在它上面,这就是你添加变量赋值并开始处理的地方