2013-07-01 4 views
0

У меня есть 3 объекта treeviewer в одном представлении в столбце типа disposition, и я хочу, чтобы их размер увеличивался одинаково, если я максимизирую/минимизирую окно view/eclipse. Вот мой код:Вопрос об изменении размера SWT TreeViewer

Composite composite = new Composite(parent, SWT.NONE); 
composite.setLayout(new GridLayout(1, false)); 

treeViewer1 = new TreeViewer(composite, SWT.BORDER); 
tree1 = treeViewer1.getTree(); 
tree1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 
tree1.pack(); 

treeViewer2 = new TreeViewer(composite, SWT.BORDER); 
tree2 = treeViewer2.getTree(); 
tree2.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 
tree2.pack(); 

treeViewer3 = new TreeViewer(composite, SWT.BORDER); 
tree3 = treeViewer3.getTree(); 
tree3.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));    
tree3.pack(); 

Однако, когда содержание определенного дерева превосходит текущее пространство просмотра, и я развернуть/свернуть мнение, что просмотр дерева пространство становится больше, чем другие.

Есть ли способ предотвратить это изменение размера из-за размера контента? Большое спасибо, ND

ответ

0

Если вы читаете документацию GridLayout, вы найдете ответ на свой вопрос:

конструирует новый экземпляр этого класса, учитывая количество столбцов, и или нет столбцы должны быть вынуждены иметь одинаковую ширину. Если numColumns имеет значение меньше 1, макет не будет устанавливать размер и положение любых элементов управления.

Решение вашей проблемы замены этого (так как вы говорите о столбцах):

composite.setLayout(new GridLayout(1, false)); 

с:

composite.setLayout(new GridLayout(3, true)); 
+0

Спасибо за информацию – user2538778

+0

@ user2538778 [Как Принятие ответить на работу?] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) ... – Baz