Witam,
Mam widok, w ktorym mam wrzucony kompozyt A o wielkosci dokladnie calego widoku.
Teraz chcialbym w ten kompozyt wrzucic 2 inne kompozyty B i C tak, zeby B zajmowal 2/3 szerokosci kompozytu A, a C reszte, czyli 1/3, niezaleznie od wielkosci okna calej aplikacji. Ktos moze wie, jak to zrobic?
Sprawa niby prosta, a jednak trudna...
//Kompozyt A:
Composite mainComposite = new Composite(parent, SWT.NONE);
GridData mainLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
mainLayoutData.horizontalSpan = 1;
mainComposite.setLayoutData(mainLayoutData);
GridLayout mainLayout = new GridLayout(3, false);
mainLayout.marginWidth = 0;
mainLayout.marginHeight = 0;
mainComposite.setLayout(mainLayout);
//Kompozyt B:
Composite subCustomerComposite = new Composite(mainComposite, SWT.NONE);
GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
layoutData.horizontalSpan = 1;
subCustomerComposite.setLayoutData(layoutData);
GridLayout layout = new GridLayout(2, false);
subCustomerComposite.setLayout(layout);
//Kompozyt C:
Composite subCustomerComposite2 = new Composite(mainComposite, SWT.NONE);
GridData layoutData2 = new GridData(SWT.FILL, SWT.FILL, true, true);
layoutData2.horizontalSpan = 1;
subCustomerComposite2.setLayoutData(layoutData);
GridLayout layout2 = new GridLayout(1, false);
subCustomerComposite2.setLayout(layout2);
możesz dodać ControlListener
możesz dodać ControlListener do kompozytu nadrzędnego. Coś na kształt:
--
piotr maj
Dzieki za wskazowke
Dzieki za wskazowke :)
Dodalem taki listener i na debug mode widze, ze ta metoda sie wykonuje, ale w aplikacji nic sie nie zmienia - nadal oba kompozyty B i C zajmuja po polowie kompozytu A.
Czy trzeba zrobic cos jeszcze? Dolozylem B.redraw() i C.redraw(), ale nie pomoglo.
aaa, już widzę co może być
aaa, już widzę co może być nie tak:
jest:
subCustomerComposite2.setLayoutData(layoutData);
powinno być:
subCustomerComposite2.setLayoutData(layoutData2);
panel A powinien sam się
panel A powinien sam się odrysować. Możesz ewentualnie spróbować A.layout(), ale nie powinno być to konieczne. Jak byś przesłał kompilujący się kod, gdzie problem występuje mógłbym sprawdzić dokładniej co jest nie tak.
afff rzeczywiscie :) Blad
afff rzeczywiscie :) Blad copy/paste. Teraz dziala.
Wielkie dzieki i wesolych swiat :)