下面列出了怎么用javax.swing.SwingWorker的API类实例代码及写法,或者点击链接到github查看源代码。
private void refreshAttributes(final boolean stopCellEditing) {
SwingWorker<Void,Void> sw = new SwingWorker<Void,Void>() {
@Override
protected Void doInBackground() throws Exception {
SnapshotMBeanServerConnection mbsc =
mbeansTab.getSnapshotMBeanServerConnection();
mbsc.flush();
return null;
}
@Override
protected void done() {
try {
get();
if (stopCellEditing) stopCellEditing();
loadAttributes(mbean, mbeanInfo);
} catch (Exception x) {
if (JConsole.isDebug()) {
x.printStackTrace();
}
}
}
};
mbeansTab.workerAdd(sw);
}
private void disasbleTimerUsage() {
AccumulativeRunnable<Runnable> nonTimerAccumulativeRunnable =
new AccumulativeRunnable<Runnable>() {
@Override
protected void run(List<Runnable> args) {
for (Runnable runnable : args) {
runnable.run();
}
}
};
Object key = getInstanceField("DO_SUBMIT_KEY", SwingWorker.class);
AppContext appContext = AppContext.getAppContext();
appContext.put(key, nonTimerAccumulativeRunnable);
}
private void refreshAttributes(final boolean stopCellEditing) {
SwingWorker<Void,Void> sw = new SwingWorker<Void,Void>() {
@Override
protected Void doInBackground() throws Exception {
SnapshotMBeanServerConnection mbsc =
mbeansTab.getSnapshotMBeanServerConnection();
mbsc.flush();
return null;
}
@Override
protected void done() {
try {
get();
if (stopCellEditing) stopCellEditing();
loadAttributes(mbean, mbeanInfo);
} catch (Exception x) {
if (JConsole.isDebug()) {
x.printStackTrace();
}
}
}
};
mbeansTab.workerAdd(sw);
}
/**
* Unsubscribe button action.
*/
private void unregisterListener() {
new SwingWorker<Boolean, Void>() {
@Override
public Boolean doInBackground() {
return mbeanNotifications.unregisterListener(currentNode);
}
@Override
protected void done() {
try {
if (get()) {
updateNotifications();
validate();
}
} catch (Exception e) {
Throwable t = Utils.getActualException(e);
if (JConsole.isDebug()) {
System.err.println("Problem removing listener");
t.printStackTrace();
}
showErrorDialog(t.getMessage(),
Messages.PROBLEM_REMOVING_LISTENER);
}
}
}.execute();
}
private void executeOperatorInWorker(ThreadedGridOperator op, String message) {
final OperatorWorker operatorWorker = new OperatorWorker(progressPanel,
model.getGrid(), op);
operatorWorker.resetProgressGUI(true);
operatorWorker.setMessage(message);
operatorWorker.addPropertyChangeListener(
new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if ("state".equals(event.getPropertyName())
&& SwingWorker.StateValue.DONE == event.getNewValue()) {
if (operatorWorker.isCancelled() == false) {
model.setGrid(operatorWorker.getResultGrid());
settingsDialog.gridChanged();
}
}
}
});
gridWorkerManager.start(operatorWorker, true, true);
}
public static void main(String[] args) throws Exception {
Toolkit.getDefaultToolkit().getSystemEventQueue().push(new EventProcessor());
SwingWorker<Void, CharSequence> swingWorker =
new SwingWorker<Void,CharSequence>() {
@Override
protected Void doInBackground() {
publish(new String[] {"hello"});
publish(new StringBuilder("world"));
return null;
}
@Override
protected void done() {
isDone.set(true);
}
};
swingWorker.execute();
while (! isDone.get()) {
Thread.sleep(100);
}
if (throwable.get() instanceof ArrayStoreException) {
throw new RuntimeException("Test failed");
}
}
private void refreshAttributes(final boolean stopCellEditing) {
SwingWorker<Void,Void> sw = new SwingWorker<Void,Void>() {
@Override
protected Void doInBackground() throws Exception {
SnapshotMBeanServerConnection mbsc =
mbeansTab.getSnapshotMBeanServerConnection();
mbsc.flush();
return null;
}
@Override
protected void done() {
try {
get();
if (stopCellEditing) stopCellEditing();
loadAttributes(mbean, mbeanInfo);
} catch (Exception x) {
if (JConsole.isDebug()) {
x.printStackTrace();
}
}
}
};
mbeansTab.workerAdd(sw);
}
/**
* Unsubscribe button action.
*/
private void unregisterListener() {
new SwingWorker<Boolean, Void>() {
@Override
public Boolean doInBackground() {
return mbeanNotifications.unregisterListener(currentNode);
}
@Override
protected void done() {
try {
if (get()) {
updateNotifications();
validate();
}
} catch (Exception e) {
Throwable t = Utils.getActualException(e);
if (JConsole.isDebug()) {
System.err.println("Problem removing listener");
t.printStackTrace();
}
showErrorDialog(t.getMessage(),
Messages.PROBLEM_REMOVING_LISTENER);
}
}
}.execute();
}
private void readMappingFile(final File resultFile) {
SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() {
private TokensMapper reverseMappings;
@Override
protected Void doInBackground() throws Exception {
reverseMappings = silverGhost.readMappingFile(resultFile);
return null;
}
protected void done() {
silverGhost.addMappings(reverseMappings);
}
};
worker.execute();
}
private void refreshAttributes(final boolean stopCellEditing) {
SwingWorker<Void,Void> sw = new SwingWorker<Void,Void>() {
@Override
protected Void doInBackground() throws Exception {
SnapshotMBeanServerConnection mbsc =
mbeansTab.getSnapshotMBeanServerConnection();
mbsc.flush();
return null;
}
@Override
protected void done() {
try {
get();
if (stopCellEditing) stopCellEditing();
loadAttributes(mbean, mbeanInfo);
} catch (Exception x) {
if (JConsole.isDebug()) {
x.printStackTrace();
}
}
}
};
mbeansTab.workerAdd(sw);
}
/**
* Unsubscribe button action.
*/
private void unregisterListener() {
new SwingWorker<Boolean, Void>() {
@Override
public Boolean doInBackground() {
return mbeanNotifications.unregisterListener(currentNode);
}
@Override
protected void done() {
try {
if (get()) {
updateNotifications();
validate();
}
} catch (Exception e) {
Throwable t = Utils.getActualException(e);
if (JConsole.isDebug()) {
System.err.println("Problem removing listener");
t.printStackTrace();
}
showErrorDialog(t.getMessage(),
Messages.PROBLEM_REMOVING_LISTENER);
}
}
}.execute();
}
@Override
public void propertyChange(PropertyChangeEvent evt) {
String propertyName = evt.getPropertyName();
if ("state".equals(propertyName)) {
StateValue state = (StateValue) evt.getNewValue();
switch (state) {
case PENDING:
case STARTED:
started();
break;
case DONE:
SwingWorker<?, ?> future = (SwingWorker<?, ?>) evt.getSource();
boolean cancelled = future.isCancelled();
done(cancelled);
}
}
}
private void refreshAttributes(final boolean stopCellEditing) {
SwingWorker<Void,Void> sw = new SwingWorker<Void,Void>() {
@Override
protected Void doInBackground() throws Exception {
SnapshotMBeanServerConnection mbsc =
mbeansTab.getSnapshotMBeanServerConnection();
mbsc.flush();
return null;
}
@Override
protected void done() {
try {
get();
if (stopCellEditing) stopCellEditing();
loadAttributes(mbean, mbeanInfo);
} catch (Exception x) {
if (JConsole.isDebug()) {
x.printStackTrace();
}
}
}
};
mbeansTab.workerAdd(sw);
}
private void refreshAttributes(final boolean stopCellEditing) {
SwingWorker<Void,Void> sw = new SwingWorker<Void,Void>() {
@Override
protected Void doInBackground() throws Exception {
SnapshotMBeanServerConnection mbsc =
mbeansTab.getSnapshotMBeanServerConnection();
mbsc.flush();
return null;
}
@Override
protected void done() {
try {
get();
if (stopCellEditing) stopCellEditing();
loadAttributes(mbean, mbeanInfo);
} catch (Exception x) {
if (JConsole.isDebug()) {
x.printStackTrace();
}
}
}
};
mbeansTab.workerAdd(sw);
}
public static void main(String[] args) throws Exception {
Toolkit.getDefaultToolkit().getSystemEventQueue().push(new EventProcessor());
SwingWorker<Void, CharSequence> swingWorker =
new SwingWorker<Void,CharSequence>() {
@Override
protected Void doInBackground() {
publish(new String[] {"hello"});
publish(new StringBuilder("world"));
return null;
}
@Override
protected void done() {
isDone.set(true);
}
};
swingWorker.execute();
while (! isDone.get()) {
Thread.sleep(100);
}
if (throwable.get() instanceof ArrayStoreException) {
throw new RuntimeException("Test failed");
}
}
public static void main(String[] args) throws Exception {
Toolkit.getDefaultToolkit().getSystemEventQueue().push(new EventProcessor());
SwingWorker<Void, CharSequence> swingWorker =
new SwingWorker<Void,CharSequence>() {
@Override
protected Void doInBackground() {
publish(new String[] {"hello"});
publish(new StringBuilder("world"));
return null;
}
@Override
protected void done() {
isDone.set(true);
}
};
swingWorker.execute();
while (! isDone.get()) {
Thread.sleep(100);
}
if (throwable.get() instanceof ArrayStoreException) {
throw new RuntimeException("Test failed");
}
}
public static void main(String[] args) throws Exception {
Toolkit.getDefaultToolkit().getSystemEventQueue().push(new EventProcessor());
SwingWorker<Void, CharSequence> swingWorker =
new SwingWorker<Void,CharSequence>() {
@Override
protected Void doInBackground() {
publish(new String[] {"hello"});
publish(new StringBuilder("world"));
return null;
}
@Override
protected void done() {
isDone.set(true);
}
};
swingWorker.execute();
while (! isDone.get()) {
Thread.sleep(100);
}
if (throwable.get() instanceof ArrayStoreException) {
throw new RuntimeException("Test failed");
}
}
/**
* Unsubscribe button action.
*/
private void unregisterListener() {
new SwingWorker<Boolean, Void>() {
@Override
public Boolean doInBackground() {
return mbeanNotifications.unregisterListener(currentNode);
}
@Override
protected void done() {
try {
if (get()) {
updateNotifications();
validate();
}
} catch (Exception e) {
Throwable t = Utils.getActualException(e);
if (JConsole.isDebug()) {
System.err.println("Problem removing listener");
t.printStackTrace();
}
showErrorDialog(t.getMessage(),
Messages.PROBLEM_REMOVING_LISTENER);
}
}
}.execute();
}
VMPanel(Application application, JConsolePluginWrapper wrapper, ProxyClient proxyClient) {
this.application = application;
this.proxyClient = proxyClient;
plugins = new LinkedHashMap<JConsolePlugin, SwingWorker<?, ?>>();
for (JConsolePlugin p : wrapper.getPlugins()) {
p.setContext(proxyClient);
plugins.put(p, null);
}
// Start listening to connection state events
//
proxyClient.addPropertyChangeListener(this);
}
/**
*
* @param loadDataTask the value of loadRawDataPropertyChangeListener
* @param usingFullPropagation the value of usingFullPropagation
* @param leftShadeCount the value of leftShadeCount
* @param ignoreFirstFractions the value of ignoreFirstFractions
* @param inLiveMode the value of inLiveMode
*/
@Override
public void getAndLoadRawIntensityDataFile(SwingWorker loadDataTask, boolean usingFullPropagation, int leftShadeCount, int ignoreFirstFractions, boolean inLiveMode) {
if (rawDataFile != null) {
// create fractions from raw data and perform corrections and calculate ratios
tripoliFractions = loadRawDataFile(loadDataTask, usingFullPropagation, leftShadeCount, ignoreFirstFractions, inLiveMode);
}
}
@Override
public SwingWorker<?, ?> newSwingWorker() {
try {
return plugin.newSwingWorker();
} catch (RuntimeException e) {
handleException(e);
}
return null;
}
public void setBoundingBox(final BoundingBox bbox) {
new SwingWorker<ValidationResult, Void>() {
protected ValidationResult doInBackground() throws Exception {
return validator.validate(bbox);
}
protected void done() {
try {
switch (get()) {
case CANCEL:
dispose();
break;
case SKIP:
case OUT_OF_RANGE:
case NO_AREA:
clearBoundingBox();
break;
case INVISIBLE:
clearBoundingBox();
indicateInvisibleBoundingBox(bbox);
break;
default:
minX.setValue(bbox.getLowerCorner().getX());
minY.setValue(bbox.getLowerCorner().getY());
maxX.setValue(bbox.getUpperCorner().getX());
maxY.setValue(bbox.getUpperCorner().getY());
showBoundingBox();
}
} catch (InterruptedException | ExecutionException e) {
//
}
}
}.execute();
}
private void blockSwingWithProgressDialog(final SwingWorker<T, Object> localWorker) {
if (!localWorker.isDone()) {
TaskDialog dialog = new SwingWorkerTaskDialog(name, hasProgress, localWorker);
taskMonitor.setBlockingMonitor(dialog);
localWorker.addPropertyChangeListener(new SwingWorkerCompletionWaiter(dialog));
dialog.show(taskDialogDelay);
}
}
@Override
public void propertyChange(PropertyChangeEvent event) {
if ("state".equals(event.getPropertyName()) &&
SwingWorker.StateValue.DONE == event.getNewValue()) {
dialog.close();
}
}
public void executeSwingWorker(SwingWorker<?, ?> sw) {
try {
sw.execute();
} catch (RuntimeException e) {
handleException(e);
}
}
private void loadTreeFile(final File file, final int row) {
frame.setBusy();
SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() {
// Executed in background thread
public Void doInBackground() {
try {
Tree tree = Utils.importTreeFromFile(file);
tree.setId(file.getName());
setRow(row, new TreesTableRecord(tree.getId(), tree));
} catch (Exception e) {
Utils.handleException(e);
}// END: try-catch block
return null;
}// END: doInBackground()
// Executed in event dispatch thread
public void done() {
frame.setIdle();
frame.fireTaxaChanged();
}// END: done
};
worker.execute();
}
/**
* Subscribe button action.
*/
private void registerListener() {
new SwingWorker<Void, Void>() {
@Override
public Void doInBackground()
throws InstanceNotFoundException, IOException {
mbeanNotifications.registerListener(currentNode);
return null;
}
@Override
protected void done() {
try {
get();
updateNotifications();
validate();
} catch (Exception e) {
Throwable t = Utils.getActualException(e);
if (JConsole.isDebug()) {
System.err.println("Problem adding listener");
t.printStackTrace();
}
showErrorDialog(t.getMessage(),
Messages.PROBLEM_ADDING_LISTENER);
}
}
}.execute();
}
/**
*
* @param loadDataTask the value of loadRawDataPropertyChangeListener
* @param usingFullPropagation the value of usingFullPropagation
* @param leftShadeCount the value of leftShadeCount
* @param ignoreFirstFractions the value of ignoreFirstFractions
* @param inLiveMode the value of inLiveMode
*/
@Override
public void getAndLoadRawIntensityDataFile(SwingWorker loadDataTask, boolean usingFullPropagation, int leftShadeCount, int ignoreFirstFractions, boolean inLiveMode) {
if (rawDataFile != null) {
// create fractions from raw data and perform corrections and calculate ratios
tripoliFractions = loadRawDataFile(loadDataTask, usingFullPropagation, leftShadeCount, ignoreFirstFractions, inLiveMode);
}
}
private void loadDoc()
{
if(isVisible())
ThreadManager.getInstance().runInEdt(new SwingWorker<Document,Void>() {
@Override
protected void done() {
try {
Document d= get();
int width = (int)getSize().getWidth();
if(width<=0)
width=450;
d.select("img").attr("width", String.valueOf(width));
pane.setText(d.html().replace("$USER_HOME", SystemUtils.USER_HOME));
} catch (Exception e) {
logger.error("error loading help",e);
pane.setText(e.getLocalizedMessage());
}
}
@Override
protected Document doInBackground() throws Exception {
if(plug.getDocumentation().getContentType().equals(FORMAT_NOTIFICATION.MARKDOWN))
return URLTools.extractMarkDownAsDocument(plug.getDocumentation().getUrl());
else
return URLTools.extractHtml(plug.getDocumentation().getUrl());
}
}, "Loading doc for "+ plug);
}
@Override
public SwingWorker<?, ?> newSwingWorker() {
try {
return plugin.newSwingWorker();
} catch (RuntimeException e) {
handleException(e);
}
return null;
}