禁用JFRAME最小化按钮



我正在为笔记本电脑开发工具。我想禁用Jframe中的最小化按钮。我已经禁用了最大化和关闭按钮。

这是禁用最大化和关闭按钮的代码:

JFrame frame = new JFrame();  
frame.setResizable(false); //Disable the Resize Button  
// Disable the Close button
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 

请告诉我如何禁用最小化按钮。

通常,您不能,您可以做的就是使用JDialog代替JFrame

正如@madprogrammer所说(对他 1),这绝对不是一个好主意

  • 使用JDialog并致电setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);以确保无法关闭。

  • 您也可以使用JWindow( 1至@m。M。)或在您的JFrame实例上调用setUndecorated(true);

另外,您可能需要添加自己的WindowAdapater,以通过覆盖windowIconified(..)并从方法中调用setState(JFrame.NORMAL);来制作JFrame Un-Minimizable等:

//necessary imports
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Test {
    /**
     * Default constructor for Test.class
     */
    public Test() {
        initComponents();
    }
    public static void main(String[] args) {
        /**
         * Create GUI and components on Event-Dispatch-Thread
         */
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                Test test = new Test();
            }
        });
    }
    private final JFrame frame = new JFrame();
    /**
     * Initialize GUI and components (including ActionListeners etc)
     */
    private void initComponents() {
        frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        frame.setResizable(false);
        frame.addWindowListener(getWindowAdapter());
        //pack frame (size JFrame to match preferred sizes of added components and set visible
        frame.pack();
        frame.setVisible(true);
    }
    private WindowAdapter getWindowAdapter() {
        return new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent we) {//overrode to show message
                super.windowClosing(we);
                JOptionPane.showMessageDialog(frame, "Cant Exit");
            }
            @Override
            public void windowIconified(WindowEvent we) {
                frame.setState(JFrame.NORMAL);
                JOptionPane.showMessageDialog(frame, "Cant Minimize");
            }
        };
    }
}

如果您不想允许任何用户操作使用JWindow

您可以尝试将Jframe类型更改为实用程序。然后,您将看不到最小化BTN并在程序中最大化BTN。

我建议您使用jframe.setUndecorated(true),因为您不使用任何窗口事件,并且不希望调整应用程序的大小。如果您想移动面板。

,请使用我制作的动力

相关内容

  • 没有找到相关文章

最新更新