我正在使用 SteelSeries 仪表 Java 库。在我的代码中 DisplaySingle.setLcdValueFont() 无效:无论我设置什么字体,始终使用默认字体。有没有人设法使 setLcdValueFont 工作?
详细信息:我通过以下方式使用 DisplaySingle:
public class ScoreDisplay {
private DisplaySingle display = new DisplaySingle();
public ScoreDisplay() {
display.setLcdUnitString("");
Font font = new Font("serif", Font.PLAIN,30);
if (font == null) {
System.out.println("Font is null");
}
System.out.println(font.toString());
display.setLcdValueFont(font);
display.setLcdColor(LcdColor.AMBER_LCD);
display.setLcdValue(99);
display.setLcdDecimals(0);
display.setLcdValueFont(font);
}
public DisplaySingle getDisplay() {
return display;
}
}
稍后在代码中,显示被添加到 JPanel:
ScoreDisplay scoreDisplay = new ScoreDisplay();
JPanel panel = new JPanel(new GridLayout(4, 1));
[...]
panel.add(scoreDisplay.getDisplay());
我查看了 DisplaySingle 的源代码,并注意到它的 init() 方法总是将 lcdValueFont 重置为 LCD_DIGITAL_FONT 或 LCD_STANDARD_FONT 的派生值,从而覆盖通过调用 .setLcdValueFont 设置的值。方法 init() 在很多地方被调用,包括各种 set* 方法。
我认为 DisplaySingle 中存在错误,但也许我无法使其正常工作?