- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 View ,其中显示元素,具体取决于之前的选择。 dispose() 和parent.layout() 确实按预期删除元素。问题是,我怎样才能把它们找回来?我想, dispose() 不会删除元素,只是将其从元素列表中取出来渲染。那么,我怎样才能拿回一个呢?
提前致谢,马库斯
<小时/> 编辑:刚刚发现,dispose() 释放了对象并递归地释放了它的子对象,所以一旦我处置了它们,我就必须重新创建它们?如果是这样,我怎样才能找到例如内的位置?网格布局?
<小时/> 编辑(2):根据下面的答案,我已经尝试过:
public class TestTab extends Composite
{
org.eclipse.swt.layout.GridLayout layout = null;
GridData griddata = null;
Button upperButton = null;
Text textInTheMiddle = null;
Button lowerButton = null;
public InvoiceTab(Composite parent, int arg2) {
super(parent, arg2);
final Composite myParent = parent;
layout = new org.eclipse.swt.layout.GridLayout(GridData.FILL_BOTH,
false);
layout.numColumns = 1;
this.setLayout(layout);
upperButton = new Button(this, SWT.PUSH);
upperButton.setText("upper Button");
textInTheMiddle = new Text(this, SWT.BORDER);
lowerButton = new Button(this, SWT.PUSH);
lowerButton.setText("lower Button");
upperButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if (textInTheMiddle.isVisible()) {
textInTheMiddle.setVisible(false);
lowerButton.moveBelow(upperButton);
} else {
textInTheMiddle.setVisible(true);
lowerButton.moveBelow(textInTheMiddle);
}
myParent.layout();
}
});
}
}
文本字段按预期可见,但下部按钮没有改变位置?再次感谢您的任何想法...
最佳答案
是的,dispose() 释放该对象并递归地释放它的子对象。所以你必须重新创建你已经处理过的控件/小部件。在像您这样的情况下,建议隐藏控件并重新布局您的组合/容器。例如see here
重点是 GridData::exclude
属性的使用。
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
class TestTab extends Composite
{
Button upperButton = null;
Text textInTheMiddle = null;
Button lowerButton = null;
boolean state = true;
public TestTab(Composite parent, int style)
{
super(parent, style);
GridLayout layout = new GridLayout(1, false);
setLayout(layout);
upperButton = new Button(this, SWT.PUSH);
upperButton.setText("upper Button");
textInTheMiddle = new Text(this, SWT.BORDER);
GridData data = new GridData(SWT.FILL, SWT.FILL, true, false);
data.exclude = false;
textInTheMiddle.setLayoutData(data);
lowerButton = new Button(this, SWT.PUSH);
lowerButton.setText("lower Button");
upperButton.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e) {
GridData griddata = (GridData) textInTheMiddle.getLayoutData();
griddata.exclude = state;
textInTheMiddle.setVisible(!state);
textInTheMiddle.getParent().layout(false);
state = !state;
}
});
}
}
public class Test
{
public static void main(String[] args)
{
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout(1, false));
new TestTab(shell, SWT.NONE);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
关于java - SWT JFace如何在moveBelow()后重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12209359/
我正在尝试使用谷歌浏览器的 Trace Event Profiling Tool分析我正在运行的 Node.js 应用程序。选择点样本后,我可以在三种 View 之间进行选择: 自上而下(树) 自上而
对于一个可能是菜鸟的问题,我们深表歉意,但尽管在 SO 上研究了大量教程和其他问题,但仍找不到答案。 我想做的很简单:显示一个包含大量数据库存储字符串的 Android ListView。我所说的“很
我已经开始了一个新元素的工作,并决定给 Foundation 5 一个 bash,看看它是什么样的。在创建带有水平字段的表单时,我在文档中注意到的第一件事是它们使用大量 div 来设置样式。所以我在下
我有一个 Windows 窗体用户控件,其中包含一个使用 BeginInvoke 委托(delegate)调用从单独线程更新的第 3 方图像显示控件。 在繁重的 CPU 负载下,UI 会锁定。当我附加
我有一堆严重依赖dom元素的JS代码。我目前使用的测试解决方案依赖于 Selenium ,但 AFAIK 无法正确评估 js 错误(addScript 错误不会导致您的测试失败,而 getEval 会
我正在制作一款基于滚动 2D map /图 block 的游戏。每个图 block (存储为图 block [21][11] - 每个 map 总共 231 个图 block )最多可以包含 21 个
考虑到以下情况,我是前端初学者: 某个 HTML 页面应该包含一个沉重的图像(例如 - 动画 gif),但我不想强制客户缓慢地等待它完全下载才能享受一个漂亮的页面,而是我更愿意给他看一个轻量级图像(例
我正在设计一个小软件,其中包括: 在互联网上获取资源, 一些用户交互(资源的快速编辑), 一些处理。 我想使用许多资源(它们都列在列表中)来这样做。每个都独立于其他。由于编辑部分很累,我想让用户(可能
我想比较两个理论场景。为了问题的目的,我简化了案例。但基本上它是您典型的生产者消费者场景。 (我关注的是消费者)。 我有一个很大的Queue dataQueue我必须将其传输给多个客户端。 那么让我们
我有一个二元分类问题,标签 0 和 1(少数)存在巨大不平衡。由于测试集带有标签 1 的行太少,因此我将训练测试设置为至少 70-30 或 60-40,因此仍然有重要的观察结果。由于我没有过多地衡量准
我是一名优秀的程序员,十分优秀!