JTabbedPane
在我的Swing程序中有一个。当用户单击选项卡时,程序需要一段时间来获取数据并处理结果,然后在所选选项卡中显示结果。
如何显示沙漏或类似效果,以便用户知道它正在处理数据?在完成工作之前不要再次单击选项卡。
JTabbedPane
在我的Swing程序中有一个。当用户单击选项卡时,程序需要一段时间来获取数据并处理结果,然后在所选选项卡中显示结果。
如何显示沙漏或类似效果,以便用户知道它正在处理数据?在完成工作之前不要再次单击选项卡。
最简单的方法是使用适当的Cursor在适当的组件(可能是顶级窗口)上调用setCursor。
component.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
然后在完成后将其放回原处。
component.setCursor(Cursor.getDefaultCursor());
JProgressBar (可能处于不确定模式)听起来不错- 将其放在选项卡上,直到获取数据。设计良好的 UI 不应强迫用户等待长时间运行的任务完成,而是允许他们在其间做其他事情。
不推荐使用 setCursor(int)。这可能更干净一点:
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
正如其他答案所提到的,您可以设置等待光标,但您也提到防止额外的鼠标点击。您可以使用玻璃窗格来防止在长时间操作完成之前单击组件。除了玻璃窗格上的Sun 教程之外,还有一个很好的示例,位于http://www.java2s.com/Code/Java/Swing-JFC/DemonstrateuseofGlassPane.htm
我会像其他人提到的那样