gpt4 book ai didi

java - JProgressBar 未按预期工作

转载 作者:行者123 更新时间:2023-12-01 18:47:34 27 4
gpt4 key购买 nike

我正在尝试将此 JProgressBar 与按钮一起使用。我在单击按钮时将 ProgressBar 的可见性设置为 true,并在同一代码中调用 Web 服务。收到网络服务的响应后,我将进度条的可见性设置为 false。

下面是我的代码。

请帮我解决这个问题。目前,进度条仅在收到响应后才会出现。

 JButton testAPI = new JButton("Test API");
testAPI.setBounds(OFFSET_X + 80, OFFSET_Y + 140, 120, 30);
testAPI.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
prg.setVisible(true);
String apiKey = apiKeyText.getText();
testAPI(apiKey);
}
});
add(testAPI);

protected void testAPI(String apiKey) {

StringBuilder sb = new StringBuilder(testQuery);
sb.append("officialdharam@gmail.com");
RestClient client = new RestClient();
try {
prg.setVisible(true);
Response s = client.invoke(sb.toString(), HttpMethod.POST);
prg.setVisible(false);
System.out.println(s);
}
catch (URISyntaxException e) {
e.printStackTrace();
}
}

最佳答案

您的代码在 EDT 上执行,因此在任务完成之前 GUI 无法重新绘制自身。

阅读 How to Use Progress Bars 上的 Swing 教程有关使用 SwingWorker 的工作示例。

另外,请阅读 Concurrency 上的教程有关 EDT 的更多信息。

关于java - JProgressBar 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17114752/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com