java swt griddata_SWT的GridData一些参数的图示_技术学院_宜昌市隼壹珍商贸有限公司

您好,欢迎访问宜昌市隼壹珍商贸有限公司

400 890 5375
当前位置: 主页 > 新闻动态 > 技术学院

java swt griddata_SWT的GridData一些参数的图示

发布时间:2025-07-21  |  点击率:

大家好,很高兴再次与你们见面,我是你们的朋友全栈君。

  1. 参数:verticalSpan

在SWT中,verticalSpan用于指定控件占据的行数。例如:

GridData gridData = new GridData();
gridData.verticalSpan = 100;
final Text nameText = new Text(shell, SWT.BORDER);
nameText.setLayoutData(gridData);

可以看出,verticalSpan决定了控件占据的行数。

以下是完整的示例代码:

public class LBMShow {
    public static void main(String args[]) {
        final Display display = Display.getDefault();
        final Shell shell = new Shell(display);
        shell.setText("Hello");
        GridLayout gridLayout = new GridLayout(2, true);
        GridData gridData = new GridData();
        gridData.verticalSpan = 100;
        shell.setLayout(gridLayout);
        final Label nameLabel = new Label(shell, SWT.BORDER);
        nameLabel.setText("name: ");
        final Text nameText = new Text(shell, SWT.BORDER);
        nameText.setText("1");
        nameLabel.setLayoutData(gridData);
        nameText.setLayoutData(gridData);
        final Label passwdLabel = new Label(shell, SWT.BORDER);
        passwdLabel.setText("password: ");
        final Text passwdText = new Text(shell, SWT.BORDER);
        passwdText.setText("2");
        final Button button = new Button(shell, SWT.NONE);
        button.setText("登录");
        //button.setBounds(32, 28, 58, 22);
        shell.open();
        //shell.layout();
        //消息循环
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
    }
}

效果图如下:

  1. 参数:horizontalSpan

horizontalSpan表示控件占据的列数,默认情况下每个控件占一列。如果设置为2,则控件会独占一行。

示例代码:

public class LBMShow {
    public static void main(String args[]) {
        final Display display = Display.getDefault();
        final Shell shell = new Shell(display);
        shell.setText("Hello");
        GridLayout gridLayout = new GridLayout(2, true);
        GridData gridData = new GridData();
        gridData.horizontalSpan = 2;
        shell.setLayout(gridLayout);
        final Label nameLabel = new Label(shell, SWT.BORDER);
        nameLabel.setText("name: ");
        final Text nameText = new Text(shell, SWT.BORDER);
        nameText.setText("1");
        nameLabel.setLayoutData(gridData);
        nameText.setLayoutData(gridData);
        final Label passwdLabel = new Label(shell, SWT.BORDER);
        passwdLabel.setText("password: ");
        final Text passwdText = new Text(shell, SWT.BORDER);
        passwdText.setText("2");
        final Button button = new Button(shell, SWT.NONE);
        button.setText("登录");
        //button.setBounds(32, 28, 58, 22);
        shell.open();
        //shell.layout();
        //消息循环
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
    }
}

效果图如下:

  1. 参数:grabExcessHorizontalSpace

grabExcessHorizontalSpace是一个布尔值,默认是false。它决定控件是否填充剩余的水平空间。

示例代码:

public class LBMShow {
    public static void main(String args[]) {
        final Display display = Display.getDefault();
        final Shell shell = new Shell(display);
        shell.setText("Hello");
        GridLayout gridLayout = new GridLayout(2, true);
        GridData gridData = new GridData();
        gridData.grabExcessHorizontalSpace = true;
        shell.setLayout(gridLayout);
        final Label nameLabel = new Label(shell, SWT.BORDER);
        nameLabel.setText("name: ");
        final Text nameText = new Text(shell, SWT.BORDER);
        nameText.setText("1");
        nameLabel.setLayoutData(gridData);
        nameText.setLayoutData(gridData);
        final Label passwdLabel = new Label(shell, SWT.BORDER);
        passwdLabel.setText("password: ");
        final Text passwdText = new Text(shell, SWT.BORDER);
        passwdText.setText("2");
        final Button button = new Button(shell, SWT.NONE);
        button.setText("登录");
        //button.setBounds(32, 28, 58, 22);
        shell.open();
        //shell.layout();
        //消息循环
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
    }
}

效果图如下:

  1. 参数:grabExcessVerticalSpace

grabExcessVerticalSpace表示控件是否填充垂直的剩余空间。

示例代码:

public class LBMShow {
    public static void main(String args[]) {
        final Display display = Display.getDefault();
        final Shell shell = new Shell(display);
        shell.setText("Hello");
        GridLayout gridLayout = new GridLayout(2, true);
        GridData gridData = new GridData();
        gridData.grabExcessVerticalSpace = true;
        shell.setLayout(gridLayout);
        final Label nameLabel = new Label(shell, SWT.BORDER);
        nameLabel.setText("name: ");
        final Text nameText = new Text(shell, SWT.BORDER);
        nameText.setText("1");
        nameLabel.setLayoutData(gridData);
        nameText.setLayoutData(gridData);
        final Label passwdLabel = new Label(shell, SWT.BORDER);
        passwdLabel.setText("password: ");
        final Text passwdText = new Text(shell, SWT.BORDER);
        passwdText.setText("2");
        final Button button = new Button(shell, SWT.NONE);
        button.setText("登录");
        //button.setBounds(32, 28, 58, 22);
        shell.open();
        //shell.layout();
        //消息循环
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
    }
}

效果图如下:

  1. 参数:widthHint

widthHint用于设置控件的最小宽度。

示例代码:

public class LBMShow {
    public static void main(String args[]) {
        final Display display = Display.getDefault();
        final Shell shell = new Shell(display);
        shell.setText("Hello");
        GridLayout gridLayout = new GridLayout(2, true);
        GridData gridData = new GridData();
        gridData.widthHint = 500;
        shell.setLayout(gridLayout);
        final Label nameLabel = new Label(shell, SWT.BORDER);
        nameLabel.setText("name: ");
        final Text nameText = new Text(shell, SWT.BORDER);
        nameText.setText("1");
        nameLabel.setLayoutData(gridData);
        nameText.setLayoutData(gridData);
        final Label passwdLabel = new Label(shell, SWT.BORDER);
        passwdLabel.setText("password: ");
        final Text passwdText = new Text(shell, SWT.BORDER);
        passwdText.setText("2");
        final Button button = new Button(shell, SWT.NONE);
        button.setText("登录");
        //button.setBounds(32, 28, 58, 22);
        shell.open();
        //shell.layout();
        //消息循环
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
    }
}

效果图如下:

  1. 参数:heightHint

heightHint用于设置控件的最小高度。

示例代码:

public class LBMShow {
    public static void main(String args[]) {
        final Display display = Display.getDefault();
        final Shell shell = new Shell(display);
        shell.setText("Hello");
        GridLayout gridLayout = new GridLayout(2, true);
        GridData gridData = new GridData();
        gridData.heightHint = 500;
        shell.setLayout(gridLayout);
        final Label nameLabel = new Label(shell, SWT.BORDER);
        nameLabel.setText("name: ");
        final Text nameText = new Text(shell, SWT.BORDER);
        nameText.setText("1");
        nameLabel.setLayoutData(gridData);
        nameText.setLayoutData(gridData);
        final Label passwdLabel = new Label(shell, SWT.BORDER);
        passwdLabel.setText("password: ");
        final Text passwdText = new Text(shell, SWT.BORDER);
        passwdText.setText("2");
        final Button button = new Button(shell, SWT.NONE);
        button.setText("登录");
        //button.setBounds(32, 28, 58, 22);
        shell.open();
        //shell.layout();
        //消息循环
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
    }
}

效果图如下:

  1. 参数:horizontalAlignment和verticalAlignment

目前还没有研究出这两个参数的具体用法。

发布者:全栈程序员栈长,转载请注明出处:https://www./link/016dda407fff9ed48128da45058b0366 原文链接:https://www./link/c8377ad2a50fb65de28b11cfc628d75c

全国统一服务电话

400 890 5375

电子邮箱:879577@qq.com

公司地址:宜昌市西陵区黄河路5号三峡明珠10栋1051室

咨询微信

TEL:13680874598