JavaSWT使标签可滚动

JavaSWT使标签可滚动,java,swt,label,Java,Swt,Label,我在SWT的组中有一个标签,如果它包含多行文本,我希望它可以垂直滚动。使用SWT.V_SCROLL设置样式参数似乎不起作用。如何执行此操作?标签不支持滚动 您可以使用只读文本控件,该控件将滚动: Text text = new Text(parent, SWT.READ_ONLY | SWT.V_SCROLL); 这里有一个方法 ScrolledComposite ivScrollComposite = new ScrolledComposite( ivShell, SWT.V_SCROLL

我在SWT的
组中有一个
标签
,如果它包含多行文本,我希望它可以垂直滚动。使用
SWT.V_SCROLL
设置样式参数似乎不起作用。如何执行此操作?

标签不支持滚动

您可以使用只读
文本
控件,该控件将滚动:

Text text = new Text(parent, SWT.READ_ONLY | SWT.V_SCROLL);
这里有一个方法

ScrolledComposite ivScrollComposite = new ScrolledComposite( ivShell, SWT.V_SCROLL );
ivScrollComposite.addControlListener( new ScrollCompositeControlListener() );
ivScrollComposite.setExpandVertical( true );
ivScrollComposite.setExpandHorizontal( true );
ivScrollComposite.setAlwaysShowScrollBars( true );

Composite ivCompositeResults = new Composite( ivScrollComposite, SWT.NONE );
Label ivLabelResults = new Label( ivCompositeResults, SWT.WRAP );

ivScrollComposite.setContent( ivCompositeResults );

ivScrollComposite.setLayout( new FormLayout() );

FormData formData = new FormData();
formData.top = new FormAttachment( 0, 0 );
formData.left = new FormAttachment( 0, 0 );
formData.right = new FormAttachment( 100, 0 );
formData.bottom = new FormAttachment( 100, 0 );
ivCompositeResults.setLayoutData( formData );

ivCompositeResults.setLayout( new FormLayout() );

formData = new FormData();
formData.top = new FormAttachment( 0, 0 );
formData.left = new FormAttachment( 0, 0 );
formData.right = new FormAttachment( 100, 0 );
formData.bottom = new FormAttachment( 100, 0 );
ivLabelResults.setLayoutData( formData );
然后

无论何时更改标签文本

ivLabelResults.setText( "some text" );
resizeScroll();

你能展示更多你尝试过的东西吗?但是你可以包装一个标签,实际上它允许滚动
ivLabelResults.setText( "some text" );
resizeScroll();