gpt4 book ai didi

java - 如何用方法替换 Display#asyncExec(Runnable) ?

转载 作者:行者123 更新时间:2023-12-01 13:47:23 24 4
gpt4 key购买 nike

我有很多重复行的代码,如下所示。如何将此作为方法?

Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
....
}
});

最佳答案

好吧,为了让这一点更加突出,让我发布一个答案:

您的代码尽可能短,因为您唯一可以传递给方法的东西是变量或标量。

<小时/>

对于所有对 Display#asyncExec(Runnable) 的调用都相同的特殊情况,您可以执行以下操作:

public class MyClass implements Runnable
{
public void myMethod()
{
/* Your other code here */
Display.getDefault().asyncExec(this);
}

@Override
public void run()
{
/* Update the GUI here */
}
}
<小时/>

另一种选择是为每个 GUI 更新目的创建类,每个类都实现 Runnable:

public class GuiUpdaters
{
public static class TableViewerUpdater implements Runnable
{
@Override
public void run()
{
/* Update your TableViewer here */
}
}

public static class StatusBarUpdater implements Runnable
{
@Override
public void run()
{
/* Update your Status bar here */
}
}
}

你可以这样调用它们:

/* Update the TableViewer */
Display.getDefault().asyncExec(new TableViewerUpdater());

/* Update the status bar */
Display.getDefault().asyncExec(new StatusBarUpdater());

关于java - 如何用方法替换 Display#asyncExec(Runnable) ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20261249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com