2013-10-28 22 views
0

我有一個SWT文本,它具有較大的內容。由於它的內容,當我最大化窗口文本框將垂直增長並隱藏其餘控件。SWT-如何採取垂直所有空間限制的文本,並隱藏其他控件

Text contentText=new Text(GroupName, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.WRAP); 

contentText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 

如何解決這個問題?

感謝

+0

如果您正確使用'GridLayout'它不應該隱瞞什麼。你可以發佈[SSCCE](http://www.sscce.org),以便我們看到你是如何創建/使用佈局? – Baz

+0

就是這樣的。 Group grp = new Group(CompositeName,SWT.NONE); grp.setLayout(new GridLayout(1,true)); grp.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true)); 文本contentText =新文本(組名,SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.WRAP); contentText.setLayoutData(新的GridData(SWT.FILL,SWT.FILL,真實,真,1,1)); – user2902067

+0

我沒有看到該代碼的任何問題,並且無法重現您的問題。 – Baz

回答

0

這完全取決於你如何放置contentText佈局本身。例如,如果您使用的是GridLayout(只有一個),這是一個比方說,一個1×2格(或n X 2真的,因爲你只需要控制多少列在網格佈局給定的行),你放置contentText對象「正確」的網格內,並實例化contentText像你這樣的GridData這樣做的:

contentText.setlayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1,1)); 

讓我們來看看究竟是與所有這些參數的發生。從:swt api on GridData,您使用此構造函數:

GridData(int horizontalAlignment, int verticalAlignment, boolean grabExcessHorizontalSpace, boolean grabExcessVerticalSpace, int horizontalSpan, int verticalSpan) 

Alrright,所以這告訴我的是,我們希望我們的contentText使用SWT.FILL參數水平和veritcal路線(使得它使物體間隔水平和垂直,我相信)。您希望它儘可能多地抓住過多的水平和垂直空間,並且希望它在水平和垂直方向上跨越一個網格元素。現在,雖然這本身不會覆蓋並靜態地覆蓋屏幕上的所有其他控件,但是當您調整大小時,仍然會告訴contentText佔用儘可能多的垂直空間(它是水平的)由我想象的相同複合/網格佈局中的其他對象構成,這就是爲什麼你沒有看到任何覆蓋)。現在

,這可能由以下原因造成你如何具有整體複合材料/結構形式,以及哪些對象包含在複合材料,等等,等等一個小因素會扔東西掉了不少。但是,學習如何使用各種佈局數據構造函數來爲你工作而不是反對你,這在SWT中是一個巨大的好處。我會看看here以更全面地理解佈局,並且只關注您正在製作的這些構造函數中的每個參數。很多時候你不需要完整的6參數構造函數,還有其他選項。

祝你好運!

相關問題