2012-10-28 75 views
7

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

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

、どのボタンを最小限に無効にするを教えてください:ここでは

は最大化と閉じるボタンを無効にするためのコードです。一般

+0

*「最小化ボタンを無効にする方法を教えてください。」*しないでください。 –

+0

GUIの実際の目標は何ですか?それはキオスクですか? –

+0

ノートパソコンのバッテリー充電情報をユーザーに表示します。 –

答えて

9

、することはできません、何を行うことができますすることで、任意のユーザーアクションの使用JWindowを許可したくない場合は、代わりJFrame

7

JDialogを使用しています。

+0

[フルスクリーン排他モードAPI](http://docs.oracle.com/javase/tutorial/extra/fullscreen/index.html)も参照してください。アプリを作る場合。それは画面上のすべてのピクセルをペイントするので、非常に便利です。 –

6

@MadProgrammerは(彼に+1を)言ったように、これは間違いなくあなたは、むしろJDialogを使用して、それを閉じることができないことを確認するsetDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);を呼び出し

  • したいと思います良いアイデアではありません。

  • JWindow(+1から@M。M)を使用するか、をJFrameインスタンスで呼び出すこともできます。

また、あなたがwindowIconified(..)をオーバーライドし、メソッド内からsetState(JFrame.NORMAL);を呼び出すことによってJFrame非最小化可能などを作るためにWindowAdapaterあなた自身を追加することもできます。

//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"); 
      } 
     }; 
    } 
} 
0

私としてjframe.setUndecorated(true)を使用するためにあなたをお勧めしますウィンドウイベントのいずれも使用しておらず、アプリケーションのサイズを変更する必要はありません。パネルを移動する場合は、私が作成したMotionPanelを使用してください。

+0

Windowsのタスクバーにあるアイコンをクリックしても、JFrameを最小限に抑えることができます。 –

+0

この場合、システムトレイに最小化されます – Sorter

0

あなたはJFrameタイプをUTILITYに変更しようとするかもしれません。次に、あなたのプログラムでbtnを最小限に抑え、btnを最大化するのを見ることはありません。

関連する問題