首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未填充内容的ScrolledComposite子项

未填充内容的ScrolledComposite子项
EN

Stack Overflow用户
提问于 2017-03-21 23:51:52
回答 1查看 169关注 0票数 0

我有一个在选择侦听器中初始化的ScrolledComposite小部件(依次附加到另一个组合)。此ScrolledComposite包含另一个组合,该组合又包含一个按钮和一个标签。当内部组合出现时,它的子部件都不会出现。我以前用过很多次ScrolledComposite,所有的东西都在我的眼里。你们能看到有什么不对劲的地方吗?注意,ScrolledComposite是一个类变量。还要注意的是,无论我是否在else条件中处理了组合及其内容,都会发生这个问题。

代码语言:javascript
复制
    final Button showConsole = new Button(topLeft, SWT.CHECK);
    showConsole.setText("Show Debug Console");
    showConsole.setFont(new Font(domains.getDisplay(), "Segoe UI", 9, SWT.ITALIC));
    showConsole.setSelection(false);
    showConsole.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            //The total widget group is only supposed to appear when the button is selected
            if (showConsole.getSelection()) {
                scrolledConsoleComp = new ScrolledComposite(leftComposite,
                        SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
                Composite consoleComposite = new ScrolledComposite(scrolledConsoleComp, SWT.NONE | SWT.BORDER);
                consoleComposite.setLayout(new GridLayout());
                consoleComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
                consoleComposite.setVisible(true);

                scrolledConsoleComp.setContent(consoleComposite);
                scrolledConsoleComp.setExpandHorizontal(true);
                scrolledConsoleComp.setExpandVertical(true);
                scrolledConsoleComp.setLayout(new GridLayout());
                scrolledConsoleComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

                Button clear = new Button(consoleComposite, SWT.PUSH);
                clear.setText("Clear Console");

                final Label consoleText = new Label(consoleComposite, SWT.WRAP);
                consoleText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
                consoleText.setText("Messages: \n" + consoleData);
                clear.addSelectionListener(new SelectionListener() {
                    @Override
                    public void widgetSelected(SelectionEvent e) {
                        consoleData = "";
                        consoleText.setText("Messages: \n" + consoleData);
                    }

                    @Override
                    public void widgetDefaultSelected(SelectionEvent e) {
                    }
                }); 
                scrolledConsoleComp.setMinSize(leftComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
                leftComposite.layout(true);

            } else {

                scrolledConsoleComp.setVisible(false);
                scrolledConsoleComp.dispose();
                leftComposite.layout(true);
            }
        }

我很感谢你的见解。如果这个问题中有什么不清楚的地方,请告诉我。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-03-21 23:57:27

您将在ScrolledComposite中创建ButtonLabel。它们不会被显示,因为setContent()没有被调用。

通常,ScrolledComposite包含一个包含所有其他小部件的Composite

您的consoleComposite应该成为一个Composite

不需要调用setVisible()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42932026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档