这是我在这里的第一个问题,但我真的被卡住了。也许这只是我最近几天的极度疲劳,但我现在在谷歌上查了几个小时,没有找到任何接近好的答案。
我知道SWT是事件驱动的,就像我能想到的所有GUI一样,在创建小部件时,我应该记住,它们需要能够访问它们应该修改/交互的小部件。但我需要知道的是,我的想法是否正确,如果不正确,我应该改进什么。
假设我从eclipse windowbuilder swt/jface java项目开始。然后我添加按钮并单击侦听器(SelectionListener),这样生成的代码看起来或多或少像(只有main方法,上面只有Main类和导入)
public static void main(String[] args) {
Display display = Display.getDefault();
Shell shell = new Shell();
shell.setSize(450, 300);
shell.setText("SWT Application");
Button btnNewButton = new Button(shell, SWT.NONE);
btnNewButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
}
});
btnNewButton.setBounds(51, 31, 75, 25);
btnNewButton.setText("New Button");
CLabel lblOneTwo = new CLabel(shell, SWT.NONE);
lblOneTwo.setBounds(180, 119, 61, 21);
lblOneTwo.setText("one two");
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
据我所知,对你们大多数人来说很明显,我不能就这样去增加
btnNewButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
}
});
代码类似于lblOneTwo。setText(“三”)根据我所知道和使用的,有时我只是预先声明所有东西,作为静态小部件widgetName,然后我基本上可以从任何地方访问它们,所以代码就像
static Button btnNewButton;
static CLabel lblOneTwo;
public static void main(String[] args) {
Display display = Display.getDefault();
Shell shell = new Shell();
shell.setSize(450, 300);
shell.setText("SWT Application");
btnNewButton = new Button(shell, SWT.NONE);
btnNewButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
lblOneTwo.setText("three");
}
});
(...)
工作得很好。但我猜测并认为这不是最好的实践和方法,不是吗?所以请帮帮我,给我指出正确的方向,这样我就可以停止在罪恶中编码。提前感谢!带有文章/教程链接的间接答案会很棒,但我喜欢人们在这里放的例子,因为他们有清晰的展示方式。
有多种方法可以做到这一点。
>
private Label l;
private Button b;
public static void main(String[] args)
{
...
b.addListener(...);
首先定义所有小部件(如果要在监听器中使用它们,必须是最终的),然后添加监听器。
final Label l = ...;
final Button b = ....;
b.addListener(...);
如果要在侦听器中更改小部件本身,可以使用事件小部件获取事件源。
b.addListener(SWT.Selection, new Listener()
{
public void handleEvent(Event e)
{
Button button = (Button) e.widget;
}
});
我有jframe与2 jboard。我有一些组件在第一个jboard和第二个按钮。当我在第一个面板上点击jbuton(调用方法删除所有)它删除所有组件(我调用方法重新验证(),重新绘制())在该jboard然后我显示第二个面板与组件。长话短说,我删除第一个jboard显示第二个,第二个显示第一个jframe,...在jboard之间切换工作正常,当我切换回第一个jboard光标时,按钮指针类型不显
我以前也问过类似的问题,但在解析网页时仍然会遇到错误。场景是系统导航到https://shop.sprouts.com/shop/flyer并希望提取与每个类别相关的每个特价商品。目前,当一个类别被点击时,我会在右边看到一个空白屏幕。我尝试了以下两种方法,但得到了相同的结果。 这是时间问题吗?我做错了什么?
我在为按钮找到正确的Xpath语法时遇到了一些困难。页面上有2个添加按钮。报告下面有一个添加按钮。项目下面有一个添加按钮。我想找到一个下面的项目,但我正在找到一个下面的报告。 我尝试了以下Xpaths,这些Xpaths在span类报告下面找到了add按钮: 我可以使用什么Xpath来定位Add...哪一个是在span类项目下面?谢了。
问题内容: 如何使文件选择器的按钮文本国际化?例如,此代码向用户呈现的内容: 问题答案: 它通常由浏览器提供并且很难更改,因此解决该问题的唯一方法是CSS / JavaScript hack,
我目前正在克隆一个站点,在“输入电子邮件”输入中,文本不会对齐,并粘在输入的底部,我更希望它在中间的左边。我该怎么解决这个?感谢任何帮助<3 null null
我最初的目标是能够在侧边栏中按标题排序显示Woocommerce产品。目前,此小部件中唯一的排序选项是日期、价格、随机和销售。 我能够在wc类小部件产品的两个部分中添加标题排序选项。php: 在这里: 此自定义工作正常,但: 我的问题:我应该在哪里保存这个定制的“”文件,以防止它在下一次更新时被覆盖<或者。。。有没有更优雅的方法来实现这一点?非常感谢。