水平滚动条在 CTabItem 内的复合下不起作用
Horizontal Scrollbar is not working under composite inside a CTabItem
我有 CtabItem,里面有一个 Composite 小部件。
然后,我在其中添加了一些组件。
代码是这样的 -
Composite composite = new Composite(tabFolder, SWT.H_SCROLL);
tabItem.setControl(composite);
Label lblName = new Label(composite, SWT.NONE);
lblName.setBounds(10, 28, 55, 15);
lblName.setText("Name");
textName = new StyledText(composite, SWT.BORDER);
String myText = tree.getSelection()[0].getText();
textName.setText(myText);
Point textNamesize = textName.computeSize(SWT.DEFAULT, SWT.DEFAULT);
textName.setBounds(76, 28, textNamesize.x, 21);
Label lblPath = new Label(composite, SWT.NONE);
lblPath.setBounds(10, 83, 55, 15);
lblPath.setText("Path");
textPath = new StyledText(composite, SWT.READ_ONLY);
textPath.setBackground(new Color(d, 240, 240, 240));
Button saveButton = new Button(composite, SWT.NONE);
saveButton.setBounds(456, 134, 75, 25);
saveButton.setText("Save");
Button cancelButton = new Button(composite, SWT.NONE);
cancelButton.setBounds(548, 134, 75, 25);
cancelButton.setText("Cancel");
但是,当我显示选项卡时,滚动条存在,但是,当我滚动复合时,滚动条移动,但滚动条另一侧的元素不显示
知道为什么它不起作用吗?
谢谢!
来自 GGrec 的 answer 我为您创建了代码段。
我将 ScrolledComposite 与 GridLayout 一起使用。希望它能让你的任务更轻松。
final ScrolledComposite scrolledComposite = new ScrolledComposite(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
final Composite composite_parent = new Composite(scrolledComposite, SWT.NONE);
composite_parent.setLayout(new GridLayout(3, false));
scrolledComposite.setContent(composite_parent);
scrolledComposite.setSize(composite_parent.computeSize(SWT.DEFAULT, SWT.DEFAULT));
final Composite composite_child = new Composite(composite_parent, SWT.NONE);
composite_child.setLayout(new GridLayout(2, false));
final Label lblDefault1 = new Label(composite_child, SWT.NONE);
lblDefault1.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
lblDefault1.setText("Name");
final StyledText textStyled = new StyledText(composite_child, SWT.NONE);
textStyled.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
Label lblNewLabel_1 = new Label(composite_child, SWT.NONE);
lblNewLabel_1.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
lblNewLabel_1.setText("Path");
text = new Text(composite_child, SWT.BORDER);
text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
scrolledComposite.setMinSize(composite_parent.computeSize(SWT.DEFAULT, SWT.DEFAULT));
我有 CtabItem,里面有一个 Composite 小部件。 然后,我在其中添加了一些组件。 代码是这样的 -
Composite composite = new Composite(tabFolder, SWT.H_SCROLL);
tabItem.setControl(composite);
Label lblName = new Label(composite, SWT.NONE);
lblName.setBounds(10, 28, 55, 15);
lblName.setText("Name");
textName = new StyledText(composite, SWT.BORDER);
String myText = tree.getSelection()[0].getText();
textName.setText(myText);
Point textNamesize = textName.computeSize(SWT.DEFAULT, SWT.DEFAULT);
textName.setBounds(76, 28, textNamesize.x, 21);
Label lblPath = new Label(composite, SWT.NONE);
lblPath.setBounds(10, 83, 55, 15);
lblPath.setText("Path");
textPath = new StyledText(composite, SWT.READ_ONLY);
textPath.setBackground(new Color(d, 240, 240, 240));
Button saveButton = new Button(composite, SWT.NONE);
saveButton.setBounds(456, 134, 75, 25);
saveButton.setText("Save");
Button cancelButton = new Button(composite, SWT.NONE);
cancelButton.setBounds(548, 134, 75, 25);
cancelButton.setText("Cancel");
但是,当我显示选项卡时,滚动条存在,但是,当我滚动复合时,滚动条移动,但滚动条另一侧的元素不显示 知道为什么它不起作用吗?
谢谢!
来自 GGrec 的 answer 我为您创建了代码段。 我将 ScrolledComposite 与 GridLayout 一起使用。希望它能让你的任务更轻松。
final ScrolledComposite scrolledComposite = new ScrolledComposite(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
final Composite composite_parent = new Composite(scrolledComposite, SWT.NONE);
composite_parent.setLayout(new GridLayout(3, false));
scrolledComposite.setContent(composite_parent);
scrolledComposite.setSize(composite_parent.computeSize(SWT.DEFAULT, SWT.DEFAULT));
final Composite composite_child = new Composite(composite_parent, SWT.NONE);
composite_child.setLayout(new GridLayout(2, false));
final Label lblDefault1 = new Label(composite_child, SWT.NONE);
lblDefault1.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
lblDefault1.setText("Name");
final StyledText textStyled = new StyledText(composite_child, SWT.NONE);
textStyled.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
Label lblNewLabel_1 = new Label(composite_child, SWT.NONE);
lblNewLabel_1.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
lblNewLabel_1.setText("Path");
text = new Text(composite_child, SWT.BORDER);
text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
scrolledComposite.setMinSize(composite_parent.computeSize(SWT.DEFAULT, SWT.DEFAULT));