如何将侦听器添加到osx上的java dock图标
我的应用程序中有jframe关闭时隐藏,但当我单击dock图标时,我需要它 设置为可见(真); 如何将操作侦听器添加到dock图标? 我试过了 但它没有被触发,如何将侦听器添加到osx上的java dock图标,java,macos,actionlistener,dock,Java,Macos,Actionlistener,Dock,我的应用程序中有jframe关闭时隐藏,但当我单击dock图标时,我需要它 设置为可见(真); 如何将操作侦听器添加到dock图标? 我试过了 但它没有被触发, 此外,它将如何影响windows计算机上的应用程序?您需要使用AppForegroundListener和/或AppPropenedListener。请参见此示例: public static void main(String[] args) { final JFrame frame = new JFrame(); A
此外,它将如何影响windows计算机上的应用程序?您需要使用
AppForegroundListener
和/或AppPropenedListener
。请参见此示例:
public static void main(String[] args)
{
final JFrame frame = new JFrame();
Application app = Application.getApplication();
app.addAppEventListener(new AppForegroundListener() {
@Override
public void appMovedToBackground(AppForegroundEvent arg0)
{
System.out.println("appMovedToBackground");
}
@Override
public void appRaisedToForeground(AppForegroundEvent arg0)
{
System.out.println("appRaisedToForeground");
frame.setVisible(true);
}
});
app.addAppEventListener(new AppReOpenedListener() {
@Override
public void appReOpened(AppReOpenedEvent arg0)
{
System.out.println("app reoponed");
frame.setVisible(true);
}
});
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
frame.setSize(200, 200);
frame.setVisible(true);
}
若在Windows上开发,则需要包含Mac/Java类的存根,否则会出现编译器错误。看
如果您在Mac上开发,只需确保在Windows上运行时不执行代码。您需要使用
AppForegroundListener
和/或AppRedListener
。请参见此示例:
public static void main(String[] args)
{
final JFrame frame = new JFrame();
Application app = Application.getApplication();
app.addAppEventListener(new AppForegroundListener() {
@Override
public void appMovedToBackground(AppForegroundEvent arg0)
{
System.out.println("appMovedToBackground");
}
@Override
public void appRaisedToForeground(AppForegroundEvent arg0)
{
System.out.println("appRaisedToForeground");
frame.setVisible(true);
}
});
app.addAppEventListener(new AppReOpenedListener() {
@Override
public void appReOpened(AppReOpenedEvent arg0)
{
System.out.println("app reoponed");
frame.setVisible(true);
}
});
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
frame.setSize(200, 200);
frame.setVisible(true);
}
若在Windows上开发,则需要包含Mac/Java类的存根,否则会出现编译器错误。看
如果您在Mac上开发,只需确保在Windows上运行时不会执行代码。只有当我关注另一个应用程序时,它才起作用,而不是监听dock图标click@DimaGoltsman见修改后的答案。您将需要一个
appropenedListener
。它只在我聚焦另一个应用程序时工作,而不监听dock图标click@DimaGoltsman见修改后的答案。您将需要一个appropenedListener
。