2013-03-07 1 views
1

SteelSeries 게이지 Java 라이브러리를 사용하고 있습니다. 내 코드 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에 버그가있는 것 같지만 아마도 제대로 작동하지 않을 것이라고 생각하십니까?

답변

1

이것은 버그처럼 보입니다. setLcdValueFont()에 설정된 글꼴은 init() 메서드에서 기본값 LCD_STANDARD_FONT 글꼴로 재정의됩니다. 그 행은 다음과 같습니다.

lcdValueFont = LCD_STANDARD_FONT.deriveFont(0.625f * getInnerBounds().height); 

따라서 항상 Verdana 24입니다. 하지만 단위 글꼴을 변경할 수 있어야합니다.

관련 문제