我有一个带有几个PanelDescriptors的向导迭代器。 我试图在“下一步”时显示等待光标。单击一个实现WizardDescriptor.ValidatingPanel的PanelDescriptor。其中的validate()方法需要时间执行。
到目前为止,我已经尝试过几种方法,但不适用于我。
http://netbeans-org.1045718.n5.nabble.com/Setting-wait-cursor-td3026613.html#a3026614
private static void changeCursorWaitStatus(final boolean isWaiting) {
Mutex.EVENT.writeAccess(new Runnable() {
public void run() {
try {
JFrame mainFrame = (JFrame) WindowManager.getDefault().getMainWindow();
Component glassPane = mainFrame.getGlassPane();
if (isWaiting) {
glassPane.setVisible(true);
glassPane.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
} else {
glassPane.setVisible(false);
glassPane.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
} catch (Exception e) {
// probably not worth handling
}
}
});
}
https://community.oracle.com/message/5322657#5322657
try {
TopComponent.getRegistry().getActivated().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
doBusyStuff();
} finally {
TopComponent.getRegistry().getActivated().setCursor(Cursor.getDefaultCursor());
}
任何暗示我指向正确方向的提示都会受到赞赏。
答案 0 :(得分:1)
试试这个
private static final java.awt.event.MouseAdapter mouseAdapter = new java.awt.event.MouseAdapter() {
};
protected static final Cursor READY_CSR = new Cursor(Cursor.DEFAULT_CURSOR);
protected static final Cursor WAIT_CSR = new Cursor(Cursor.WAIT_CURSOR);
public void setBusy(boolean busy) {
if(busy) {
setCursor(WAIT_CSR);
frame.getGlassPane().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
frame.getGlassPane().addMouseListener(mouseAdapter);
frame.getGlassPane().setVisible(true);
}else {
setCursor(READY_CSR);
frame.getGlassPane().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
frame.getGlassPane().removeMouseListener(mouseAdapter);
frame.getGlassPane().setVisible(false);
}
}