Я использую Java-версию SteelSeries. В моем коде DisplaySingle.setLcdValueFont() не действует: независимо от того, какой шрифт я устанавливал, шрифт по умолчанию всегда используется. Кто-нибудь смог заставить setLcdValueFont работать?DisplaySingle.setLcdValueFont не влияет на SteelSeries
Детали: я использую 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, но, возможно, я просто не могу заставить его работать?