我有一个带有JTable
的java小程序。由于大量数据和较差的网络带宽,因此需要花费大量时间来执行任何操作,例如加载表或更改表。
我正在考虑添加一些活动指示器,让用户知道他的请求正在处理中。
在我使用JProgressBar
之前,我想知道是否还有其他选项,如ajax活动花。
答案 0 :(得分:4)
最简单的方法是设置(非动画)WAIT_CURSOR
// Setting cursor for any Component:
component.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
doProcessing();
component.setCursor(Cursor.getDefaultCursor());
请参阅http://www.catalysoft.com/articles/busyCursor.html
对于动画光标,请参阅:
http://book.javanb.com/swing-hacks/swinghacks-chp-12-sect-2.html
答案 1 :(得分:3)
SwingWorker
就是为此设计的,正如example中所述。特别是,“请注意,可以安全地从流程方法中改变tableModel
,因为它是在事件调度线程上调用的。” - publish()
答案 2 :(得分:3)
您可以使用JBusyComponent。只需将表或Scrollpane包装在JBusyComponent中。但请记住在事件派发线程之外加载数据。为此,您可以使用其他答案中建议的SwingWorker。 JBusyComponent已经为此提供了一个BusySwingWorker。