下面列出了java.awt.Desktop#setQuitHandler ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
static void install() {
try {
Desktop app = Desktop.getDesktop();
NbApplicationAdapterJDK9 al = new NbApplicationAdapterJDK9();
app.setAboutHandler(al);
app.setOpenFileHandler(al);
app.setPreferencesHandler(al);
app.setQuitHandler(al);
} catch (Throwable ex) {
ErrorManager.getDefault().notify(ErrorManager.WARNING, ex);
} finally {
}
NbApplicationAdapter.install();
}
static void uninstall() {
Desktop app = Desktop.getDesktop();
app.setAboutHandler(null);
app.setOpenFileHandler(null);
app.setPreferencesHandler(null);
app.setQuitHandler(null);
}
/**
* Initialize the Mac-specific properties.
* Create an ApplicationAdapter to listen for Help, Prefs, and Quit.
*/
public static void initialize()
{
if (initialized)
{
return;
}
initialized = true;
if (!Desktop.isDesktopSupported())
{
return;
}
Desktop theDesktop = Desktop.getDesktop();
if (theDesktop.isSupported(Action.APP_ABOUT))
{
theDesktop.setAboutHandler(new AboutHandler());
}
if (theDesktop.isSupported(Action.APP_PREFERENCES))
{
theDesktop.setPreferencesHandler(new PreferencesHandler());
}
if (theDesktop.isSupported(Action.APP_QUIT_HANDLER))
{
theDesktop.setQuitHandler(new QuitHandler());
}
}
/**
* Initialize the Mac-specific properties.
* Create an ApplicationAdapter to listen for Help, Prefs, and Quit.
*/
public static void initialize()
{
if (initialized)
{
return;
}
initialized = true;
if (!Desktop.isDesktopSupported())
{
return;
}
Desktop theDesktop = Desktop.getDesktop();
if (theDesktop.isSupported(Action.APP_ABOUT))
{
theDesktop.setAboutHandler(new AboutHandler());
}
if (theDesktop.isSupported(Action.APP_PREFERENCES))
{
theDesktop.setPreferencesHandler(new PreferencesHandler());
}
if (theDesktop.isSupported(Action.APP_QUIT_HANDLER))
{
theDesktop.setQuitHandler(new QuitHandler());
}
}
@Override
public void run() {
logger.finest("Configuring desktop settings");
// Set basic desktop handlers
final Desktop awtDesktop = Desktop.getDesktop();
if (awtDesktop != null) {
// Setup About handler
if (awtDesktop.isSupported(Desktop.Action.APP_ABOUT)) {
awtDesktop.setAboutHandler(e -> {
MZmineGUI.showAboutWindow();
});
}
// Setup Quit handler
if (awtDesktop.isSupported(Desktop.Action.APP_QUIT_HANDLER)) {
awtDesktop.setQuitHandler((e, response) -> {
ExitCode exitCode = MZmineCore.getDesktop().exitMZmine();
if (exitCode == ExitCode.OK)
response.performQuit();
else
response.cancelQuit();
});
}
}
if (Taskbar.isTaskbarSupported()) {
final Taskbar taskBar = Taskbar.getTaskbar();
// Set the main app icon
if ((mzMineIcon != null) && taskBar.isSupported(Taskbar.Feature.ICON_IMAGE)) {
final java.awt.Image mzMineIconAWT = SwingFXUtils.fromFXImage(mzMineIcon, null);
taskBar.setIconImage(mzMineIconAWT);
}
// Add a task controller listener to show task progress
MZmineCore.getTaskController().addTaskControlListener((numOfWaitingTasks, percentDone) -> {
if (numOfWaitingTasks > 0) {
if (taskBar.isSupported(Taskbar.Feature.ICON_BADGE_NUMBER)) {
String badge = String.valueOf(numOfWaitingTasks);
taskBar.setIconBadge(badge);
}
if (taskBar.isSupported(Taskbar.Feature.PROGRESS_VALUE))
taskBar.setProgressValue(percentDone);
} else {
if (taskBar.isSupported(Taskbar.Feature.ICON_BADGE_NUMBER))
taskBar.setIconBadge(null);
/*
* if (taskBar.isSupported( Taskbar.Feature.PROGRESS_STATE_WINDOW))
* taskBar.setWindowProgressState( MZmineCore.getDesktop().getMainWindow(),
* Taskbar.State.OFF);
*/
if (taskBar.isSupported(Taskbar.Feature.PROGRESS_VALUE))
taskBar.setProgressValue(-1);
/*
* if (taskBar.isSupported( Taskbar.Feature.PROGRESS_VALUE_WINDOW))
* taskBar.setWindowProgressValue( MZmineCore.getDesktop().getMainWindow(), -1);
*/
}
});
}
// Let the OS decide the location of new windows. Otherwise, all windows
// would appear at the top left corner by default.
// TODO: investigate if this applies to JavaFX windows
System.setProperty("java.awt.Window.locationByPlatform", "true");
}