【问题标题】:SWT Text fields and buttons too smallSWT 文本字段和按钮太小
【发布时间】:2013-12-23 23:24:22
【问题描述】:

这是我第一次使用 SWT,我正在制作这样的登录 shell:

loginshell = new Shell(swtFrameDisp,SWT.ON_TOP);
        loginshell.setLayout(new GridLayout(1, false));
        loginshell
                .setSize(textBoxHeight + 100, textBoxHeight + 100);

        GridData data = new GridData(SWT.FILL, SWT.BEGINNING, true,
                false);

        // Center loginscreen!
        Monitor primary = swtFrameDisp.getPrimaryMonitor();
        Rectangle bounds = primary.getBounds();
        Rectangle rect = loginshell.getBounds();
        int x = bounds.x + (bounds.width - rect.width) / 2;
        int y = bounds.y + (bounds.height - rect.height) / 2;
        loginshell.setLocation(x, y);

        Label label = new Label(loginshell, SWT.NONE);
        label.setLayoutData(data);
        label.setText("Login to Messupport.com");

        // text field settings
        userNameField = new Text(loginshell, SWT.BORDER);
        userNameField.setLayoutData(data);
        userNameField.setTextLimit(100);
        userNameField.setText("username");

        passwordField = new Text(loginshell, SWT.PASSWORD
                | SWT.BORDER);
        passwordField.setLayoutData(data);
        passwordField.setBounds(100, 50, 100, 20);
        passwordField.setTextLimit(100);
        Button bn = new Button(loginshell, SWT.FLAT);
        bn.setLayoutData(data);
        bn.setText("Login");
        loginshell.setDefaultButton(bn);

但是,文本字段和我的按钮太小,我不知道为什么。但是谁能启发我?

我已经尝试使用 setBounds,但没有结果。所以它可能与布局有关。我想知道如何解决这个问题,谢谢。

【问题讨论】:

    标签: java eclipse button swt


    【解决方案1】:

    您对所有控件使用相同的GridData 对象。您必须为每个对象创建一个新的GridData,因为它用于存储控件的布局信息。

    来自GridDataJavaDoc:

    注意:不要重复使用 GridData 对象。 Composite 中的每个控件 由 GridLayout 管理必须具有唯一的 GridData 对象。

    【讨论】:

    • 是的,我认为这可能是问题所在!谢谢!
    猜你喜欢
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多