gpt4 book ai didi

java - 如何在处理结束时显示 "Loading..."消息自动关闭(类似于Progress Bar)?

转载 作者:行者123 更新时间:2023-11-29 08:13:51 25 4
gpt4 key购买 nike

我有一个组合框 jComboBox1,其中包含世界上所有国家/地区的名称...在选择其中一个国家后,第二个组合框 jComboBox2 将填充在 jComboBox1 中选择的国家/地区的所有州。现在,我想在填充所选国家/地区的州时显示进度条或“正在加载...”消息,并在完成后自动关闭。

代码是这样的...

 public void actionPerformed(ActionEvent e){
if(e.getSource()==jComboBox1){
if(jCombobox1.setSelectedIndex()!=-1){
Country country=new Country();
country.populateStates(jComboBox2,label,this);
//"label" is of type JLabel whose text is is set to show the progress
//"this" refers to the current frame to repaint once label is changed
}
}
}

我认为我可以在框架中使用 JLabel,其可见性和文本可以使用 setVisible() 和 setText 进行设置。请注意,“Country”是一个不同的类,我将此标签传递给它的方法 populateStates,我在其中使用 label.setText("Loading details of state:"+state) 并执行 frame.repaint()。 (这就是我传递框架对象“this”的原因)。即使那样,标签也不会改变。

但是,在选择国家/地区后,标签初始文本中出现的唯一变化是国家/地区选择结束后设置的最后一个文本。标签的中间更改不会出现在 GUI 中。为什么会这样,我的方法有什么问题?我必须使用另一种使用线程的方法吗???如果是,怎么办??

最佳答案

首先,由于这似乎是一项漫长的任务,您需要在美国东部时间之外填充国家/地区列表。

为此,您可以使用 SwingWorkerSwingWorker 提供了一些可用于向用户提供反馈的方法。

但是您将需要执行一些工作来显示该反馈。

关于java - 如何在处理结束时显示 "Loading..."消息自动关闭(类似于Progress Bar)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6056505/

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