2010-12-08 13 views
5

क्या कोई स्टाइल बिट है जो क्षैतिज आकार बदलने से रोकने के लिए मैं अपने खोल/संवाद पर लागू कर सकता हूं? मैं खिड़की को लंबवत आकार बदलने की अनुमति देना चाहता हूं।एक एसडब्ल्यूटी विंडो को क्षैतिज रूप से आकार देने से रोकना

धन्यवाद।

उत्तर

6

विंडो के आकार बदलने की घटना को कैप्चर करने के लिए ControlListener का उपयोग करें। यदि उपयोगकर्ता विंडो की चौड़ाई बदलने की कोशिश करता है तो उसके डिफ़ॉल्ट मान को पुनर्स्थापित करें।

import org.eclipse.swt.events.ControlAdapter; 
import org.eclipse.swt.events.ControlEvent; 
import org.eclipse.swt.graphics.Rectangle; 
import org.eclipse.swt.widgets.Display; 
import org.eclipse.swt.widgets.Shell; 

public class TestWindow { 

    private static int CONST_WIDTH = 200; 

    public static void main(String[] args) { 
     Display display = new Display(); 
     final Shell shell = new Shell(display); 
     shell.setBounds(shell.getBounds().x, shell.getBounds().y, CONST_WIDTH, shell.getBounds().height); 
     shell.setText("Test"); 

     shell.addControlListener(new ControlAdapter() { 

      @Override 
      public void controlResized(ControlEvent e) { 
       Rectangle rect = shell.getBounds(); 
       if(rect.width != CONST_WIDTH) { 
        shell.setBounds(rect.x, rect.y, CONST_WIDTH, rect.height); 
       } 
      } 
     }); 

     shell.open(); 
     while(!shell.isDisposed()) { 
      if(!display.readAndDispatch()) { 
       display.sleep(); 
      } 
     } 
     display.dispose(); 
    } 
} 
+0

यह विंडोज़ को भी रोकेगा: 'shell.setBounds (rect.x, rect.y, '' – draw

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