2010-04-19 11 views
15

मुझे JFrame से अधिकतम को कम करने और कम करने की आवश्यकता है। कृपया सुझाव दें कि यह कैसे करें।मैं जेएफआरएएम से अधिकतम और कम से कम बटन कैसे हटा सकता हूं?

+0

http://stackoverflow.com/questions/2527021/how-to-disable-minimize-button-in-frame पर एक नज़र डालें और देखें कि क्या यह आपके प्रश्न का उत्तर देता है। –

+0

यह जेडियलोग का उपयोग करने के बारे में कहता है, myeclipse में मैं java.awt आयात कर रहा हूं। * लेकिन JDialog अपरिचित है। उस पर कोई मदद? – silverkid

+0

'जेडियलोग' और 'जेएफआरएएम' दोनों 'java.swing' पैकेज में हैं। आपको 'java.swing आयात करें' * की आवश्यकता है। –

उत्तर

7
import java.awt.event.WindowAdapter; 
import java.awt.event.WindowEvent; 

import javax.swing.JDialog; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class Dlg extends JDialog { 
    public Dlg(JFrame frame, String str) { 
     super(frame, str); 
     addWindowListener(new WindowAdapter() { 
      public void windowClosing(WindowEvent evt) { 
       System.exit(0); 
      } 
     }); 
    } 

    public static void main(String[] args) { 
     try { 
      Dlg frame = new Dlg(new JFrame(), "No min max buttons"); 
      JPanel panel = new JPanel(); 
      panel.setSize(200, 200); 
      JLabel lbl = new JLabel("blah blah"); 
      panel.add(lbl); 
      frame.add(panel); 
      frame.setSize(400, 400); 
      frame.setVisible(true); 
     } catch (IllegalArgumentException e) { 
      System.exit(0); 
     } 
    } 
} 
+0

क्या इस पर कोई विपक्ष है? – iKlsR

+3

आपका उत्तर क्या है? आप यह नहीं समझाते कि आप क्या कर रहे हैं, और मुझे नहीं लगता कि आप जेएफआरएएम से न्यूनतम/अधिकतम बटन कहां हटा रहे हैं। जबकि अब मैं देखता हूं कि आप इसके साथ कहां जा रहे हैं, मुझे यह सोचने में एक या दो मिनट लग गए कि यह एक जवाब कैसे था। – Aaron

+0

सावधान रहें, यह समाधान खिड़की पर ध्यान केंद्रित करने के लिए काफी कठिन बनाता है। यह एक संवाद है, जिसका अर्थ है कि यह विंडोज़ में एक खुले कार्यक्रम के रूप में नहीं दिखाई देगा। यदि उपयोगकर्ता एक और विंडो पर केंद्रित करता है, जैसे एक वेब ब्राउज़र, संवाद को फिर से केंद्रित करने के लिए, उपयोगकर्ता को अन्य सभी प्रोग्रामों को कम करना होगा। –

12

फ्रेम सजावट को अक्षम करने के लिए setUndecorated() का उपयोग करके एक संबंधित उदाहरण यहां दिया गया है।

alt text

import java.awt.EventQueue; 
import java.awt.event.ActionEvent; 
import javax.swing.AbstractAction; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class FrameTest implements Runnable { 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new FrameTest()); 
    } 

    @Override 
    public void run() { 
     JFrame f = new JFrame(); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.setUndecorated(true); 
     JPanel panel = new JPanel(); 
     panel.add(new JLabel("Stackoverflow!")); 
     panel.add(new JButton(new AbstractAction("Close") { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       System.exit(0); 
      } 
     })); 
     f.add(panel); 
     f.pack(); 
     f.setLocationRelativeTo(null); 
     f.setVisible(true); 
    } 
} 
9

नोट: मैं शुरू में stacker के जवाब संपादित, लेकिन यह सुझाव दिया गया कि मैं एक नया जवाब के बजाय पैदा करते हैं।

आपके उपयोगकर्ताओं के लिए उपलब्ध विंडो नियंत्रण को अनुकूलित करने के कुछ तरीके हैं।

import java.awt.Dimension; 
import java.awt.event.WindowAdapter; 
import java.awt.event.WindowEvent; 

import javax.swing.JDialog; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class DialogDemo { 

    public static void main(String[] args) { 
     JDialog dialog = new JDialog(new JFrame(), "No min max buttons"); 
     // necessary as setDefaultCloseOperation(EXIT_ON_CLOSE) is 
     // not available for JDialogs. 
     dialog.addWindowListener(new WindowAdapter() { 
      public void windowClosing(WindowEvent evt) { 
       System.exit(0); 
      } 
     }); 

     JLabel label = new JLabel("blah blah"); 
     JPanel panel = new JPanel(); 
     panel.setPreferredSize(new Dimension(400, 400)); 
     panel.add(label); 

     dialog.add(panel); 
     dialog.pack(); 
     dialog.setVisible(true); 
    } 
} 

संवाद समाधान उपयोगकर्ताओं के लिए यह असंभव बना देता है:

वर्तमान में अधिकतम हटाने और, बटन को कम करते हुए शीर्षक पट्टी और बंद करें बटन रखने के लिए एक ही रास्ता है, एक JDialog बजाय JFrame एक के उपयोग करने के लिए है शॉर्टकट के उपयोग के माध्यम से विंडो को कम करने और अधिकतम करने के लिए, हालांकि यह विंडो का आकार बदलने की क्षमता को हटा नहीं देता है।

setResizable(false) का उपयोग करके विंडो को आकार बदलने में सक्षम न होने की लागत पर केवल अधिकतम बटन हटा दिया जाएगा।

आखिरकार, जैसा कि trashgod द्वारा वर्णित है, setUndecorated(true) विधि फ्रेम सजावट को अक्षम कर देगा, शीर्षक बार और विंडो किनारों को हटा देगा। यह उपयोगकर्ताओं को खिड़की को खींचने, आकार बदलने और बंद करने के लिए कठिन बनाता है, हालांकि असंभव नहीं है, क्योंकि इन क्रियाओं को अभी भी शॉर्टकट कुंजियों का उपयोग करके किया जा सकता है।

+0

यह एकमात्र उत्तर है जो वास्तव में प्रश्न का उत्तर देता है। – Aaron

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