2016-10-13 1 views
0

내가 openjdk-8-jdk-armhf와 머리가없는 리눅스 박스를 실행하고있어 내 응용 프로그램,NPE 헤드리스의 새로운 JPanel의() (RepaintManager.currentManager)를 호출 할 때

METRICS = new JPanel().getFontMetrics(FONT); 

RepaintManager.currentManager(RepaintManager.java:262)에 다시 도달하는 NullPointerException이 예외 선을 실행할 때 , 이는 다음과 같다 : 다음과 같이

public static RepaintManager currentManager(Component c) { 
     // Note: DisplayChangedRunnable passes in null as the component, so if 
     // component is ever used to determine the current 
     // RepaintManager, DisplayChangedRunnable will need to be modified 
     // accordingly. 
     return currentManager(AppContext.getAppContext()); 
    } 

전체 추적은 다음과 같습니다

java.lang.NullPointerException 
    at javax.swing.RepaintManager.currentManager(RepaintManager.java:262) 
    at javax.swing.JComponent.repaint(JComponent.java:4799) 
    at java.awt.Component.repaint(Component.java:3303) 
    at javax.swing.JComponent.setFont(JComponent.java:2756) 
    at javax.swing.LookAndFeel.installColorsAndFont(LookAndFeel.java:208) 
    at javax.swing.plaf.basic.BasicPanelUI.installDefaults(BasicPanelUI.java:66) 
    at javax.swing.plaf.basic.BasicPanelUI.installUI(BasicPanelUI.java:56) 
    at javax.swing.JComponent.setUI(JComponent.java:664) 
    at javax.swing.JPanel.setUI(JPanel.java:153) 
    at javax.swing.JPanel.updateUI(JPanel.java:126) 
    at javax.swing.JPanel.<init>(JPanel.java:86) 
    at javax.swing.JPanel.<init>(JPanel.java:109) 
    at javax.swing.JPanel.<init>(JPanel.java:117) 
    at lukemoll.MyClass.<init>(MyClass.java:15) 

이 오류는 jsvcjava 명령을 통해 재현 할 수 있습니다.

+0

시스템 속성 'System.setProperty ("java.awt.headless", "true");가 도움이됩니까? – Robin

+0

@Robin 내가 코드에 어딘가에 추가했다고 생각했는데, 내가 시도해 보겠다. (나는 SFTP가 필요하다.) –

+0

@Robin은 아무 것도하지 않았던 것처럼 보인다 :/ –

답변

0

Gyro Gearless 덕분에 this answer을 지적하십시오.

이 (Canvas)도 헤드리스 모드에서 작동합니다.

나는 new Canvas().getFontMetrics(font);을 사용하여 끝났지 만, 지난 번에 어떻게 작동했는지는 잘 모르겠지만 내 컴퓨터에서 작동합니다 (tm).

관련 문제