当前位置:  开发笔记 > 编程语言 > 正文

如何使文本字段水平填充100%

如何解决《如何使文本字段水平填充100%》经验,为你挑选了2个好方法。

如果我有一个带有SWT的文本字段,如何将字段填充到100%或某个指定的宽度.

例如,此文本字段仅在水平方向上达到如此之多.

public class Tmp {
    public static void main (String [] args) {
        Display display = new Display ();
        Shell shell = new Shell (display);
        GridLayout gridLayout = new GridLayout ();
        shell.setLayout (gridLayout);

        Button button0 = new Button(shell, SWT.PUSH);
        button0.setText ("button0");

        Text text = new Text(shell, SWT.BORDER | SWT.FILL);
        text.setText ("Text Field");

        shell.setSize(500, 400);
        //shell.pack();
        shell.open();

        while (!shell.isDisposed ()) {
            if (!display.readAndDispatch ())
                display.sleep ();
        }
        display.dispose ();
    }
}

Martin Thura.. 5

做这样的事情:

Text text = new Text(shell, SWT.BORDER);
text.setText ("Text Field");
text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER));

/:由于这是可接受的答案,因此我删除了错误。谢谢我的纠正。



1> Martin Thura..:

做这样的事情:

Text text = new Text(shell, SWT.BORDER);
text.setText ("Text Field");
text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER));

/:由于这是可接受的答案,因此我删除了错误。谢谢我的纠正。



2> Mario Ortegó..:

元素在Component中的定位取决于您正在使用的Layout对象.在提供的示例中,您使用的是GridLayout.这意味着,您需要提供特定的LayoutData对象来指示您希望组件的显示方式.在GridLayout的情况下,对象是GridData.

要实现您想要的效果,您必须创建一个GridData对象来抓取所有水平空间并填充它:

// Fills available horizontal and vertical space, grabs horizontal space,grab
// does not  grab vertical space
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false);
text.setLayoutData(gd);

替代方法包括使用不同的LayoutManager,例如FormLayout.此布局使用FormData对象,该对象还允许您指定组件在屏幕上的放置方式.

您还可以阅读有关Layouts的这篇文章,了解Layouts的工作原理.

作为旁注,构造函数new GridData(int style)在文档中标记为"不推荐".此示例中显示的显式构造函数是首选.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有