我的模型中有一个Compressor组件:
public class Compressor extends MComponent {
public static final double THRESHOLD_MAX = 1;
public static final double THRESHOLD_MIN = 0;
public static final double THRESHOLD_DEFAULT = 1;
private double threshold;
/* <snip> - many other parameters*/
public void setThreshold(double v) { this.threshold = v; }
}
对于这个特定的应用程序,我有一个使用 Java Swing 构建的 GUI,它添加了滑块、按钮等来显示和控制 Compressors 参数。
现在,其中一些滑块应该在线性刻度上运行,而其他滑块应该在对数/指数刻度上运行(其中滑块的移动会使下端的值发生小的变化,而上端的值会发生很大的变化结尾)。
我有一个 GuiConstructor 类,可以方便地创建滑块及其移动事件,以便在给定最小值、最大值、指数/线性类型和 aq 值(对于指数类型)的情况下它们会适当地行动。
gc.addSliderPanel(
panel,
"Threshold",
Compressor.THRESHOLD_MIN,
Compressor.THRESHOLD_MAX,
c.getThreshold(),
GuiConstructor.Scale.LINEAR, /*<-- this line*/
0,
new SetThreshold(c),
DEFAULT_SLIDER_GRAINS,
GuiConstructor.SliderValueType.FLOAT);
问题是 - 我应该在视图中声明显示类型还是可以在模型中指定显示类型?
例如。
public class Compressor extends MComponent {
public static final double THRESHOLD_MAX = 1;
public static final double THRESHOLD_MIN = 0;
public static final double THRESHOLD_DEFAULT = 1;
public static final GuiConstructor.Scale THRESHOLD_SCALETYPE = GuiConstructor.Scale.LINEAR;
private double threshold;
我喜欢在模型中指定它的想法,因为我只需要在创建每个组件时考虑显示参数,而不是在将它们放在一起时。