仅在用户触发事件时运行颜色计算



我想在下一个方法中设置一些颜色,但我不应该对此方法/类进行任何计算,因为它被多次重印,这会让我的应用程序非常慢:

void setStyle() {
    if (fake) {
        lineColor = EditorSettings.getInstance().getColorOfElement(FAKE_ELEMENT);
    }
    else if (important) {
        lineColor = EditorSettings.getInstance().getColorOfElement(IMPORTANT_ELEMENT);
    }
}

因此,我想在代码的另一部分进行的计算是:

EditorSettings.getInstance().getColorOfElement(FAKE_ELEMENT);

我想仅在用户更改此元素的颜色时获取此计算的值。我试图将这些计算存储在另一个类的静态块中,但它不起作用。我读到也许我可以用听众来做,但我不知道该怎么做。谁能帮我?谢谢:)

编辑:更多代码--->

public class DiscoveryEditorSettings {
static {
    Color COLOR_FAKE_MESSAGE = DiscoveryEditorSettings.getInstance().getColorOfElement(FAKE_MESSAGE_KEY);
}
}

然后无法使用它:

if (fake) {
        lineColor = DiscoveryEditorSettings.COLOR_FAKE_MESSAGE; 
    }

你不需要静态块,而需要一个静态(公共)变量:

public class DiscoveryEditorSettings {
    public static Color COLOR_FAKE_MESSAGE = DiscoveryEditorSettings.getInstance().getColorOfElement(FAKE_MESSAGE_KEY);
}

最新更新