2010-05-06 8 views
24

मैं एक JFrame जो GridBagLayout में 3 JPanels है ..जावा जोरों पर एक खिड़की के लिए न्यूनतम आकार सीमा निर्धारित करना

अब, जब मैं एक खिड़कियों को कम से कम, एक निश्चित सीमा के बाद, तीसरे है जेपीनल गायब हो जाता है। मैं JFrame की कम से कम आकार सेट setMinimumSize (नया आयाम (int, int)) लेकिन कोई सफलता उपयोग करने की कोशिश। खिड़कियां अभी भी कम हो सकती हैं।

तो, मैं वास्तव में एक थ्रेशोल्ड बनाना चाहता हूं, कि मेरी खिड़की को एक निश्चित सीमा के बाद कम नहीं किया जा सकता है।

कैसे मैं ऐसा कर सकते हैं?

कोड: -

import java.awt.Dimension; 

import javax.swing.JFrame; 

public class JFrameExample { 
    public static void main(String[] args) { 
     JFrame frame = new JFrame("Hello World"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setMinimumSize(new Dimension(400, 400)); 
     frame.setVisible(true); 
    } 
} 

इसके अलावा: ** एक ही हालांकि NetBeans आईडीई देता है जब चलाएँ:

[email protected]:~/java$ java --showversion 
java version "1.5.0" 
gij (GNU libgcj) version 4.4.1 

Copyright (C) 2007 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
Usage: gij [OPTION] ... CLASS [ARGS] ... 
      to invoke CLASS.main, or 
     gij -jar [OPTION] ... JARFILE [ARGS] ... 
      to execute a jar file 
Try `gij --help' for more information. 
[email protected]:~/java$ 

मुझे

alt text

तरह उत्पादन ** अद्यतन देता है अपेक्षित आउटपुट .. जब मैं "जावा जेएफआरएएमएक्स नमूना" कंपाइलर से गुजरता हूं, तो मुझे सामना करना पड़ रहा है मुद्दों .. अब, इसका क्या मतलब है ??

+1

आप किस प्लेटफ़ॉर्म पर हैं और जावा का किस संस्करण का उपयोग कर रहे हैं? ubuntu पर –

+0

जावा 6 9.10 –

+0

आप अपने जावा 6 के विशिष्ट अद्यतन संख्या में पता है? 'जावा-वर्जन' टाइप करें और आपको कुछ ऐसा दिखना चाहिए: जावा संस्करण "1.6.0_18", 18 अद्यतन # होगा। यह वहाँ एक बग है कि केवल उस के शीर्ष पर जावा 6 –

उत्तर

30

documentation मुझसे कहता है, इस व्यवहार मंच निर्भर है कि। विशेष रूप से, Windows Vista में वांछित के रूप में के बाद से निम्न उदाहरण कोड मेरे लिए काम करता है:

import java.awt.Dimension; 

import javax.swing.JFrame; 

public class JFrameExample { 
    public static void main(String[] args) { 
     JFrame frame = new JFrame("Hello World"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setMinimumSize(new Dimension(100, 100)); 
     frame.setVisible(true); 
    } 
} 
+0

मेरे लिए भी काम करता है (उबंटू 9, जावा 6, gnome पर)। – aioobe

+0

मैं उबंटू 9 .10, जावा 6, जीनोम पर हूं .. यह मेरे लिए काम नहीं कर रहा है .. मुझे उम्मीद है कि आप मेरे प्रश्न के बारे में निश्चित हैं। मैं नहीं चाहता कि मेरी खिड़कियां एक निश्चित दहलीज के बाद कम हो जाएं ... –

+0

उबंटू 14.04, जावा 7, जीनोम/एकता पर काम करता है। –

6

वहाँ वास्तव में किसी भी मंच पर न्यूनतम आकार सुनिश्चित करने के लिए एक तरीका है। आपको जेएफआरएएम का न्यूनतम आकार अपनी सामग्री फलक के न्यूनतम आकार में सेट करने की आवश्यकता है और फिर आपको घटक एडाप्टर लिखना होगा और घटक को ओवरराइड करना होगा। फिर आप अपने जेफ्रेम पर गेटसाइज का उपयोग करें और न्यूनतम आकार प्राप्त करें और न्यूनतम चौड़ाई या ऊंचाई के साथ चौड़ाई और ऊंचाई या ऊंचाई को प्रतिस्थापित करें। मान लें कि आप जेएफआरएएम का विस्तार कर रहे हैं:

this.addComponentListener(new ComponentAdapter(){ 
     public void componentResized(ComponentEvent e){ 
      Dimension d=YourJFrame.this.getSize(); 
      Dimension minD=YourJFrame.this.getMinimumSize(); 
      if(d.width<minD.width) 
       d.width=minD.width; 
      if(d.height<minD.height) 
       d.height=minD.height; 
      YourJFrame.this.setSize(d); 
     } 
    }); 
+0

'frame.addComponentListener (नई ComponentAdapter() { \t @Override सार्वजनिक शून्य componentResized (ComponentEvent ई) { आयाम d = frame.getSize(); आयाम मन = फ्रेम।getMinimumSize(); यदि (डी। विड्थ कहाँ फ्रेम वर्ग के सदस्य' निजी JFrame फ्रेम के रूप में घोषित किया जाता है, ' [डेमो कोड, डाउनलोड करने की जरूरत] (https://ideone.com/i9AYBf) – Abhijeet

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