如何在Swing应用程序中禁用Window + D?

时间:2014-05-20 14:04:49

标签: java swing

我有一个处于全屏模式的swing应用程序。我添加了一个按钮来退出我的应用程序。现在我需要禁用WINDOW+D选项

我曾尝试使用KeyEventListener来禁用D,但我没有得到预期的结果。

if (e.getKeyCode()==KeyEvent.VK_D){
}

对于禁用ALT+TAB,我使用了以下代码,该代码正常运行。

frame.setAlwaysOnTop(true);

任何建议?

1 个答案:

答案 0 :(得分:2)

为此,您可以尝试使用WindowAdapter方法windowIconified()

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class TestFrame extends JFrame {

    public TestFrame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        init();
        pack();
        setVisible(true);
    }

    private void init() {
        TestFrame.this.setExtendedState(JFrame.MAXIMIZED_BOTH);
        add(new JLabel("test"));
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowIconified(WindowEvent e) {
                System.out.println("cant minimize");
                SwingUtilities.invokeLater(new Runnable() {

                    @Override
                    public void run() {
                        try {
                            Thread.sleep(100);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        TestFrame.this.setExtendedState(JFrame.MAXIMIZED_BOTH);
                    }
                });
            }
        });
    }

    public static void main(String... strings) {
        new TestFrame();
    }

}