10

私は自分のラップトップ用のツールを開発しています。JFrameの最小化ボタンを無効にしたい。すでに最大化と閉じるボタンを無効にしています。

最大化して閉じるボタンを無効にするコードは次のとおりです。

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

最小化ボタンを無効にする方法を教えてください。

4

5 に答える 5

10

一般的に、あなたはできません、あなたができることはJDialog代わりに使用することですJFrame

于 2012-10-28T07:47:51.973 に答える
10

@MadProgrammerが言ったように(彼に+1)、これは間違いなくあなたがしたい良い考えではありません

  • JDialogと呼び出しを使用して、setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);閉じることができないことを確認してください。

  • JWindowインスタンスで(+1 to @MM) または呼び出しをsetUndecorated(true);使用することもできJFrameます。

または、独自のものを追加して、メソッド内からオーバーライドして呼び出すことにより、最小化できないなどWindowAdapaterを作成することもできます。JFramewindowIconified(..)setState(JFrame.NORMAL);

//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");
            }
        };
    }
}
于 2012-10-28T08:59:17.360 に答える
8

ユーザーアクションの使用を許可したくない場合は、を使用しますJWindow

于 2012-10-28T07:49:36.837 に答える
5

JFrame タイプを UTILITY に変更してみてください。そうすると、プログラムで最小化 btn と最大化 btn の両方が表示されなくなります。

于 2015-12-13T10:19:38.080 に答える