Что-то попробовать, хотя я не совсем уверен, что это сработает, потому что здесь уже поздно, и я могу думать об этом неправильно.
Когда вы минимизируете окно, событие запускается, и вам нужно перехватить его, добавив WindowStateListener в JFrame, который отслеживает WINDOW_ICONIFIED и WINDOW_DEICONIFIED. Когда происходит WINDOW_ICONIFIED, установите для свойства visible JFrame значение false; когда WINDOW_DEICONIFIED установить его в значение true. Быстрый тест установки видимости фрейма в false, казалось, удалял его из панели задач, все, что вам нужно сделать, это выяснить, действительно ли он работает, и затем реализовать список состояний.
Вот код, который я использовал для проверки
import java.awt.*;
public class FrameTest
{
public static void main (String args[]) throws Exception
{
// Create a test frame
Frame frame = new Frame("Hello");
frame.add ( new Label("Minimize demo") );
frame.pack();
// Show the frame
frame.setVisible (true);
// Sleep for 5 seconds, then minimize
Thread.sleep (5000);
frame.setState ( Frame.ICONIFIED );
frame.setVisible(false);
// Sleep for 5 seconds, then restore
Thread.sleep (5000);
frame.setState ( Frame.NORMAL );
frame.setVisible(true);
// Sleep for 5 seconds, then kill window
Thread.sleep (5000);
frame.setVisible (false);
frame.dispose();
// Terminate test
System.exit(0);
}
}