如何关闭X按钮的可见性并禁用alt + F4功能

时间:2012-02-29 16:27:44

标签: java swing

有人能告诉我如何将主应用程序窗口中的X按钮设置为false,以及如何设置Alt + F4功能不可用或只是禁用它?


更新

我将其添加到:

public ZalumView(SingleFrameApplication app) { 
    super(app); 
    initComponents(); 
    mainFrame = this.getFrame(); 
    mainFrame.setTitle("Zalum - zarzadzanie zasobami ludzkimi"); 
    mainFrame.pack(); 
    mainFrame.setResizable(false); 
    mainFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

2 个答案:

答案 0 :(得分:7)

“框架可能会使用setUndecorated关闭其原生装饰(即框架和标题栏)。” - Frame

附录:您可以发送WINDOW_CLOSING事件并将Action绑定到您想要的Keystroke,如图here所示。

答案 1 :(得分:7)

为了将X按钮设置为不可见,@ trashgod非常详细地说明了这一点,为了禁用ALT + F4,你可以简单地写frameObject.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

或者您可以像这样将JindowListener(...)添加到您的JFrame:

代码段显示我的意思:

import java.awt.event.*;
import javax.swing.*;

public class FrameTest
{
    private WindowAdapter windowAction;
    private JFrame frame;

    public FrameTest()
    {
        frame = new JFrame("FRAME TEST");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationByPlatform(true);

        windowAction = new WindowAdapter()
        {
            public void windowClosing(WindowEvent we)
            {
                frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
            }
        };

        frame.addWindowListener(windowAction);

        frame.setSize(100, 100);
        frame.setVisible(true);     
    }
    public static void main(String... args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                new FrameTest();
            }
        });
    }
}