Моя проблема в том, что я хочу добавить Scrollbar
в композит.
По сути, у меня есть композит с кнопкой. Когда вы нажимаете кнопку, новый контент будет добавлен в композит (метка и текст). Через некоторое время содержимое переполняет композит. Я хочу добавить полосу прокрутки, чтобы вы могли видеть весь текст при добавлении.
Я уже пробовал ScrolledComposite
, но почему-то он не будет прокручиваться, я думаю, потому что он не распознает, что содержание композита превышает
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Slider;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.layout.RowData;
import swing2swt.layout.BoxLayout;
public class test {
protected static String _intentId;
static Text intentNameText;
static Text utterance;
static Text pattern;
static int increaser=0;
static int counterNumb=1;
/**
* Launch the application.
* @param args
*/
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell( display );
shell.setSize(602,474);
Composite container = new Composite(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FILL);
container.setBounds(21, 10, 553, 407);
Label lblCreateAnIntent = new Label(container, SWT.NONE);
lblCreateAnIntent.setBounds(36, 30, 193, 20);
lblCreateAnIntent.setText("Create an Intent");
final Composite innerComposite = new Composite(container, SWT.NONE);
innerComposite.setBounds(59, 54, 475, 319);;
//innerComposite.layout();
Label lblIntentName = new Label(innerComposite, SWT.NONE);
lblIntentName.setBounds(10, 23, 97, 20);
lblIntentName.setText("Intent Name:");
intentNameText = new Text(innerComposite, SWT.BORDER);
intentNameText.setBounds(113, 23, 78, 26);
Label lblUtterances = new Label(innerComposite, SWT.NONE);
lblUtterances.setText("Utterances");
lblUtterances.setBounds(41, 83, 120, 20);
Label lblPattern = new Label(innerComposite, SWT.NONE);
lblPattern.setText("Pattern");
lblPattern.setBounds(220, 84, 120, 20);
utterance = new Text(innerComposite, SWT.BORDER);
utterance.setBounds(41, 109, 150, 26);
pattern = new Text(innerComposite, SWT.BORDER);
pattern.setBounds(220, 110, 150, 26);
final Button btnNewButton = new Button(innerComposite, SWT.NONE);
btnNewButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
increaser=increaser+40;
Label number0 = new Label(innerComposite, SWT.NONE);
number0.setText(Integer.toString(counterNumb));
number0.setBounds(20, 112, 15, 20);
counterNumb=counterNumb+1;
Label number = new Label(innerComposite, SWT.NONE);
number.setText(Integer.toString(0+counterNumb) + ".");
number.setBounds(20, 112+increaser, 15, 20);
utterance = new Text(innerComposite, SWT.BORDER);
utterance.setBounds(41, 109+increaser, 150, 26);
pattern = new Text(innerComposite, SWT.BORDER);
pattern.setBounds(220, 110+increaser, 150, 26);
btnNewButton.setBounds(41, 150+increaser, 121, 30);
}
});
btnNewButton.setBounds(41, 150, 121, 30);
btnNewButton.setText("Add Utterance");
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
}
Моя цель состоит в том, чтобы полосу прокрутки можно было видеть, когда содержимое превышает составной. После прокрутки весь контент должен быть виден