4

我有带有JTable. 由于大量数据和较差的网络带宽,执行任何操作(例如加载表或更改表)都需要大量时间。我正在考虑添加某种活动指示器,让用户知道他的请求正在处理中。在我使用之前JProgressBar,我想知道是否还有其他选项,例如 ajax 活动花。

4

3 回答 3

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

于 2011-08-18T11:29:58.250 回答
3

SwingWorker是为此而设计的,正如本中所建议的那样。特别是,“请注意,tableModel从进程方法内部改变它是安全的,因为它是在事件调度线程上调用的。”—<a href="http://download.oracle.com/javase/6/docs/api /javax/swing/SwingWorker.html#publish%28V...%29" rel="nofollow noreferrer">publish()

于 2011-08-18T11:26:28.483 回答
3

您可以为此使用JBusyComponent。只需将您的表格或滚动窗格包装在 JBusyComponent 中。但请记住在事件调度线程之外加载数据。为此,您可以按照其他答案中的建议使用 SwingWorker。JBusyComponent 已经为此提供了 BusySwingWorker。

于 2011-08-18T11:28:15.570 回答