Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JFace仅调整TitleReadialog中最后一个组的大小_Java_Resize_Swt_Jface_Titleareadialog - Fatal编程技术网

Java JFace仅调整TitleReadialog中最后一个组的大小

Java JFace仅调整TitleReadialog中最后一个组的大小,java,resize,swt,jface,titleareadialog,Java,Resize,Swt,Jface,Titleareadialog,下面附带的程序创建了一个TitlearReadialog,其中包含四个组。每个组都包含控件,最后一个组是“动态”组,即在组合框中选择条目时,会生成一定数量的控件 现在,幸运的是,对话框会自动调整大小——但我想对调整大小有更多的控制。正如现在一样,对话框大小在组之间“均匀分布”。我想做的是只放大(或缩小)最后一组,即使用户用鼠标调整对话框的大小。三个静态组的大小(高度)应保持不变 有没有办法做到这一点? 蒂亚 公共类对话框示例扩展应用程序窗口{ 类MyDialog扩展了TitlearReadial

下面附带的程序创建了一个TitlearReadialog,其中包含四个组。每个组都包含控件,最后一个组是“动态”组,即在组合框中选择条目时,会生成一定数量的控件

现在,幸运的是,对话框会自动调整大小——但我想对调整大小有更多的控制。正如现在一样,对话框大小在组之间“均匀分布”。我想做的是只放大(或缩小)最后一组,即使用户用鼠标调整对话框的大小。三个静态组的大小(高度)应保持不变

有没有办法做到这一点? 蒂亚

公共类对话框示例扩展应用程序窗口{
类MyDialog扩展了TitlearReadialog{
MyDialog(Shell){
超级(壳牌);
setShellStyle(getShellStyle()| SWT.MAX | SWT.RESIZE);
}
专用复合createComposite(复合父级){
复合材料c=新复合材料(母体,SWT.NONE);
GridLayout=新的GridLayout(1,false);
布局。水平间距=10;
c、 设置布局(布局);
c、 setLayoutData(新网格数据(SWT.FILL,SWT.FILL,true,true));
返回c;
}
私有组createGroup(复合父级,字符串标题){
新组=新组(父组,SWT.NONE);
newGroup.setText(标题);
setLayoutData(新的GridData(SWT.FILL,SWT.FILL,true,true));
GridLayout=新的GridLayout();
newGroup.setLayout(布局);
返回新组;
}
私有组createGroup(复合父级,int-controlCount){
组newGroup=createGroup(父级,“组”+控制计数);
对于(int i=0;i对于(int i=0;i而言,其原因是您使用以下公式:

newGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
这意味着每个组都应该跨越父组并占据尽可能多的空间

您可以使用以下方法解决此问题:

newGroup.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
对于不应垂直拉伸的组件,以及:

newGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
对于那些应该这样做的人


如果您还没有阅读“理解SWT中的布局”,请阅读

newGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));