2010-10-09 18 views

उत्तर

10

अधिकतर देखो और महसूस करते हैं, मोडल विंडोज़ (जैसे JDialog) में अधिकतम बटन नहीं है क्योंकि उन्हें अधिकतम (या कम से कम) नहीं माना जाता है।

कुछ चाल के साथ एक maximise बटन जोड़ने के लिए यह संभव है, लेकिन यह पूरी तरह से जिस तरह से JDialog काम करने के लिए माना जाता है के खिलाफ होगा। यदि आपको अधिकतम बटन की आवश्यकता है, तो सबसे अच्छा समाधान या के बजाय JFrame का उपयोग करेगा। वे खिड़कियां अधिकतमकरण और न्यूनीकरण का समर्थन करते हैं।


चेतावनी: आपको लगता है कि ऐसा नहीं करना चाहिए, कोई बात नहीं क्या।

JDialog में यह करने के लिए एक चाल:

setUndecorated(true); 
getRootPane().setWindowDecorationStyle(JRootPane.FRAME); 
+0

तो ऐसा करने के लिए कोई "कानूनी" तरीका नहीं है? : एस – user

+0

@ जैनोस हरसानी, नहीं, जैसा कि मैंने कहा था, उन्हें अधिकतम बटन नहीं होना चाहिए। –

+0

दिलचस्प एच 4 एक्स, लेकिन निश्चित रूप से वास्तव में एक अच्छा अभ्यास नहीं है –

0

यहाँ एक वैकल्पिक जवाब है।

संतोष कुमार द्वारा Are You Missing Maximize Button? आज़माएं।

यह एक उपयोगिता वर्ग है जो फ्रेम को एक संवाद की नकल करता है।

1

समाधान 1: उबंटू

पर परीक्षण किया गया मैं एक WindowFocusListener

कहा: विंडोज

पर परीक्षण किया गया मैं मोडल विंडो

JFrame mainWindow = new JFrame; 
mainWindow.setVisible(true); 
JFrame modalWindow = new JFrame(); 
// The next two sentences gives modalWindow modal beahaviour 
mainWindow.setEnabled(false); 
mainWindow.setFocusable(false); 
modalWindow.setVisible(true); 

समाधान 2 के लिए एक JFrame इस्तेमाल किया

addWindowFocusListener(new java.awt.event.WindowFocusListener() { public void windowGainedFocus(java.awt.event.WindowEvent evt) {} public void windowLostFocus(java.awt.event.WindowEvent evt) { formWindowLostFocus(evt);} private void formWindowLostFocus(java.awt.event.WindowEvent evt) { this.requestFocus(); this.toFront();} 
+1

समाधान 2 "सुपर मोडल" है, कोई अन्य विंडो नहीं चुना जा सकता है, चाहे कोई भी जावा, मूल, चाहे जो भी हो। सावधान रहे! – sillo01

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