有一个 JTabbedPane 在我的 摇摆 程序。当用户单击选项卡时,程序需要一段时间来获取数据并处理结果,然后在所选选项卡中显示结果。

如何显示沙漏或类似效果的东西 让用户知道它正在处理数据?在完成工作之前不要再次单击该选项卡。

有帮助吗?

解决方案

一个 JProgressBar的(可能在indetermiante模式)听起来是正确 - 把该选项卡上,直到数据被取出。一个设计良好的用户界面不应该强迫用户等待长时间运行的任务来完成,而是让他们做别的事情插图中。

其他提示

最简单的方法就是调用 设置光标 在适当的组件(可能是顶级窗口)上使用适当的 光标.

component.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

完成后将其放回去。

component.setCursor(Cursor.getDefaultCursor());

的setCursor(INT)已过时。这可能是一个比特清洁器:

setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

作为其他的答案提及,可以设置一个等待光标,但也提到防止附加鼠标点击。您可以使用玻璃面板,以防止部件点击,直到长操作完成。除了太阳教程的在玻璃板,有在 http://www.java2s.com一个很好的例子/Code/Java/Swing-JFC/DemonstrateuseofGlassPane.htm

我会为其他提到的

  • 改变光标
  • 使用SwingWorker
  • 显示的进度或动画图像在glasspane
  • 隐藏glasspane时的任务完成
  • 恢复默认的光标
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top