Zawijanie tekstu przy radio buttonie lub tekstu labelki

Jak mozna zawinac tekst przy radio buttonie tak, aby wpasowal sie w szerokosc elementu, ktory go zawiera?

Jesli sie nie da, ewentualnie moge ustawic w jednej kolumnie radio button bez tekstu, a w drugiej kolumnie (obok) labelke z tekstem do radio buttona i wtedy problem zamienia sie na zawijanie tekstu w labelce :)

Zwykle SWT.WRAP nie daje rezultatu..

...
Composite subcomposite = new Composite(parent, SWT.NONE);
subcomposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
subcomposite.setLayout(new GridLayout(2, false));

Button radioChoiceButton = new Button(subcomposite, SWT.RADIO);
radioChoiceButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false));

Label radioChoiceButtonLabel = new Label(subcomposite, SWT.WRAP); //nie dziala
radioChoiceButtonLabel.setText("Very very very very ... long text to be wrapped");

Opcje przeglądania komentarzy

Wybierz preferowany sposób wyświetlania komentarzy i klinij na "Zapisz ustawienia", aby aktywować zmiany.
ant's picture

a jakie masz ustawione

a jakie masz ustawione layoutData na radioChoiceButtonLabel?

Probowalem roznych - w ogole

Probowalem roznych - w ogole bez layout data i z takim:

GridData layoutData = new GridData(SWT.BEGINNING, SWT.CENTER, true, true);
radioChoiceButtonLabel.setLayoutData(layoutData);

i z roznymi kombinacjami dwoch ostatnich argumentow.

W miedzyczasie znalazlem rakie rozwiazanie, ze Stringa, ktorego chce wrzucic jako tekst labelki, dziele znakami konca linii "\n". Ale jest to sztywne i toporne rozwiazanie.. Co ciekawe to rozwiazanie czasem nie dziala, w zaleznosci od tego, gdzie w Stringu wstawi sie ten koniec linii (jest on ignorowany i caly tekst laduje w jednej linii). Nie odkrylem dokladnie jakie sa tu zaleznosci.

Rozumiem ze dla radio buttona nie ma zawijania tekstu (tak slyszalem)?

ant's picture

Poniższy kod: Label label =

Poniższy kod:

Label label = new Label(parent, SWT.WRAP | SWT.LEFT);
label.setText("asdf asdf aksdf alskj laskjf laksjdf lkasjdf adsoif sodf askljdf laskdjf lkasjdf as");
GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
label.setLayoutData(layoutData);

u mnie działa bez problemów. Zawija tekst jak trzeba.
--
piotr maj

Hmm u mnie tez dziala..

Hmm u mnie tez dziala.. mialem inaczej ustawione 2 pierwsze argumenty.

Dzieki :)

PS. Dziala tez z:
Label label = new Label(parent, SWT.WRAP);