2012-10-28 17 views
7

अक्षम करें मैं अपने लैपटॉप के लिए एक उपकरण विकसित कर रहा हूं। मैं जेएफआरएएम में न्यूनतम बटन को अक्षम करना चाहता हूं। मैंने पहले से ही अधिकतम और बंद बटन अक्षम कर दिया है।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

यहां जीयूआई का वास्तविक लक्ष्य क्या है? क्या यह एक कियोस्क है? –

+0

लैपटॉप में उपयोगकर्ता को बैटरी चार्ज जानकारी प्रदर्शित करता है। –

उत्तर

9

आमतौर पर, आप नहीं कर सकते हैं, आप क्या कर सकते एक JDialogJFrame

7

के बजाय का उपयोग करें यदि आप किसी भी उपयोगकर्ता कार्रवाई उपयोग JWindow अनुमति देने के लिए नहीं करना चाहते हैं है।

+0

[पूर्ण-स्क्रीन एक्सक्लूसिव मोड एपीआई] (http://docs.oracle.com/javase/tutorial/extra/fullscreen/index.html) भी देखें। यदि ऐप बनाना है। जो हर पिक्सेल ऑन-स्क्रीन पेंट करता है, यह बहुत आसान हो सकता है। –

6

रूप @MadProgrammer कहा (उसे करने के लिए +1), इस निश्चित रूप से एक अच्छा विचार है अगर आप को

  • एक JDialog का उपयोग करें और setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); फोन यकीन है कि यह बंद नहीं किया जा सकता है यह सुनिश्चित करना चाहते नहीं है।

  • आप JWindow (+1 एमएम से +1) का उपयोग भी कर सकते हैं या अपने JFrame उदाहरण पर setUndecorated(true); पर कॉल कर सकते हैं।

वैकल्पिक रूप से आप जोड़ सकते हैं अपने खुद के WindowAdapaterwindowIconified(..) अधिभावी और विधि के भीतर से setState(JFrame.NORMAL); फोन करके JFrame अन-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"); 
      } 
     }; 
    } 
} 
0

मैं के रूप में jframe.setUndecorated(true) उपयोग करने के लिए आप की सिफारिश करेंगे आप किसी भी विंडो घटनाओं का उपयोग नहीं कर रहे हैं और नहीं चाहते कि एप्लिकेशन का आकार बदला जाए। यदि आप पैनल को ले जाना चाहते हैं, तो मैंने बनाया है कि MotionPanel का उपयोग करें।

+0

लोग अभी भी विंडोज़ टास्क बार में आइकन पर क्लिक करके जेएफआरएएम को कम कर सकते हैं ... –

+0

उस स्थिति में आप सिस्टम ट्रे को कम करते हैं – Sorter

0

आप अपने जेएफआरएएम प्रकार को यूटिलिटी में बदलने की कोशिश कर सकते हैं। फिर आप दोनों को कम से कम बीटीएन नहीं देखेंगे और आपके प्रोग्राम में बीटीएन को अधिकतम नहीं करेंगे।

संबंधित मुद्दे