Layout SWT布局选择
我试图制作一个框,允许您选择一些变量,并对所选变量重新排序。左框开始填满,右框开始清空。您可以将项目从左向右移动,在右侧,您可以重新排列它们的顺序(使用向上和向下按钮)。这允许您选择所需的项目和顺序(用于在程序的另一部分中进行排序) 我要选择的布局如下所示: 不幸的是,结果是。。。嗯…:-( 我正在寻找的功能都很有用。耶。我只是在布局上有点困难。我想如果我能达到以下四个主要目标,我会被设定Layout SWT布局选择,layout,swt,Layout,Swt,我试图制作一个框,允许您选择一些变量,并对所选变量重新排序。左框开始填满,右框开始清空。您可以将项目从左向右移动,在右侧,您可以重新排列它们的顺序(使用向上和向下按钮)。这允许您选择所需的项目和顺序(用于在程序的另一部分中进行排序) 我要选择的布局如下所示: 不幸的是,结果是。。。嗯…:-( 我正在寻找的功能都很有用。耶。我只是在布局上有点困难。我想如果我能达到以下四个主要目标,我会被设定 我怎样才能在底部而不是在多层上获得“确定”和“取消”按钮 如何使Multi具有预设的大小(例如…10)
@Override
protected Control createDialogArea(Composite parent) {
parent.getShell().setText("Multi-sort");
Composite dialogcomp = new Composite(parent, SWT.NONE);
dialogcomp.setLayout(new GridLayout(3, false));
available = new List(getShell(), SWT.BORDER | SWT.V_SCROLL);
for(String t : MultiSortDialog.availableNames) {
available.add(t);
}
used = new List(getShell(), SWT.BORDER | SWT.V_SCROLL);
for(String t : MultiSortDialog.usedNames) {
used.add(t);
}
createButton(parent, ADD, ">", false);
createButton(parent, REM, "<", false);
createButton(parent, UP, "^", false);
createButton(parent, DOWN, "V", false);
return dialogcomp;
}
@覆盖
受保护的控件createDialogArea(复合父级){
parent.getShell().setText(“多重排序”);
复合对话框comp=新复合(父项,SWT.NONE);
对话框comp.setLayout(新的GridLayout(3,false));
可用=新列表(getShell(),SWT.BORDER | SWT.V_滚动);
for(字符串t:multiportDialog.availableNames){
增加(t);
}
used=新列表(getShell(),SWT.BORDER | SWT.V_滚动);
for(字符串t:MultiSortDialog.usedNames){
使用。添加(t);
}
createButton(父级,添加“>”,false);
createButton(父对象,REM,“
我建议您只需使用对话框的默认“确定”和“取消”按钮,而不要尝试设置自己的按钮。SWT有一个很好的系统,可以将它们放置在系统默认位置(即,在Mac OS上,“确定”按钮将位于右侧,这是正确的位置。)
不要使用Dialog.createButton()
创建按钮。这会在对话框上创建一个按钮,虽然听起来像是您想要做的,但实际上不是。这会创建一个“确定”或“取消”按钮样式的按钮,该按钮应放置在dialog
类拥有的按钮栏组合中,并为最下面一行的“确定/取消”按钮适当设置样式。Y您想在正在创建的组合中创建一个新按钮。即:
Button addButton=新按钮(对话框comp,SWT.PUSH);
addButton.setText(“>”);
addButton.addSelectionListener(…);
要垂直堆叠按钮,请在对话框comp
中创建一个新的组合来包含它们
要在列表
之间放置箭头按钮,您需要确保按正确的顺序添加内容。使用网格布局
,您需要按希望的顺序添加小部件
其他要点:
不要通过调用Shell.setText()
来更改对话框的标题。在对话框中调用setText()
不要试图将列表
设置为父shell中的父对象。您将获得一个组合来放入内容。这将对您的布局造成严重破坏。您基本上是将小部件提升到您不拥有且不布局的内容中。相反,将其放入您创建的组合
您可能还希望创建类型为SWT.ARROW | SWT.LEFT
的按钮,而不是简单地绘制
我建议您只需使用对话框的默认“确定”和“取消”按钮,而不要尝试设置自己的按钮。SWT有一个很好的系统,可以将它们放置在系统默认位置(即,在Mac OS上,“确定”按钮将位于右侧,这是正确的位置。)
不要使用Dialog.createButton()
创建按钮。这会在对话框上创建一个按钮,虽然听起来像是您想要做的,但实际上不是。这会创建一个“确定”或“取消”按钮样式的按钮,该按钮应放置在dialog
类拥有的按钮栏组合中,并为最下面一行的“确定/取消”按钮适当设置样式。Y您想在正在创建的组合中创建一个新按钮。即:
Button addButton=新按钮(对话框comp,SWT.PUSH);
addButton.setText(“>”);
addButton.addSelectionListener(…);
要垂直堆叠按钮,请在对话框comp
中创建一个新的组合来包含它们
要在列表
之间放置箭头按钮,您需要确保按正确的顺序添加内容。使用网格布局
,您需要按希望的顺序添加小部件
其他要点:
不要通过调用Shell.setText()
来更改对话框的标题。在对话框中调用setText()
不要试图将列表
设置为父shell中的父对象。您将获得一个组合来放入内容。这将对您的布局造成严重破坏。您基本上是将小部件提升到您不拥有且不布局的内容中。相反,将其放入您创建的组合
您可能还希望创建类型为SWT.ARROW | SWT.LEFT
的按钮,而不是简单地为读者绘制练习。这正是我想要的,即使没有您的代码!简单的要点使这成为一个很好的答案。代码片段只是锦上添花。非常感谢您!我将成为我想让你知道事情的结果。:-)很感谢你的工作