2014-03-30 4 views
0

간단한 Pong 게임을하고 8 비트 글꼴을 추가하려고했지만 어떻게 할 수 없습니까? 이 내가 JLabels에 사용되는 방법이다 : 나는 여기에 발견 솔루션 및 기타 웹 사이트를 시도사용자 정의 글꼴을 JLabel로 설정

public void drawScore() 
{ 
    player1 = "Player 1"; 
    player2 = "Player 2"; 


    JLabel leftScore = new JLabel(player1); 
    JLabel rightScore = new JLabel(player2); 

    leftScore.setForeground(Color.white); 
    rightScore.setForeground(Color.white); 

    leftScore.setLocation(20, 0); 
    rightScore.setLocation(730, 0); 

    leftScore.setSize(100, 40); 
    rightScore.setSize(100, 40); 

    add(leftScore); 
    add(rightScore); 
} 

그들이 잘 하나 작동하지 않았다. .TTF 파일은 '자산'이라는 폴더에 있습니다. 내가 만든 곳은 입니다. Java 프로젝트 폴더으로 명명되었습니다. 올바른 코드에 trycatch 블록이 포함되지 않으면 완벽 할 것입니다.

+0

온라인에서 찾은 방법 중 하나를 시도해 본 다음 더 구체적인 질문이있는 곳으로 돌아 왔을 때 더 잘 대답 할 수 있습니다. – amoebe

답변

1
private static Font fontAwesome; 

static { 
    try (InputStream in = YOURCLASS.class.getClassLoader().getResourceAsStream("assets/fontawesome-webfont.ttf")) { 
     fontAwesome = Font.createFont(Font.TRUETYPE_FONT, in); 
    } catch (FontFormatException | IOException e) { 
     e.printStackTrace(); 
    } 
} 

다음은 fontawesome의 예입니다. 클래스 상단에 붙여 넣은 다음 leftScore.setFont(fontAwesome);을 사용하여 글꼴을 설정하면됩니다.

불행히도 try/catch가 필요합니다. 언어 수준에 따라 멀티 패치 블록이 작동하지 않을 수 있습니다. 두 개의 catch 블록으로 분할하지 않으면됩니다.

0

이 시도하십시오

try { 
    InputStream is = YourClass.class.getResourceAsStream("path/to/font"); 
    Font font = Font.createFont(Font.TRUETYPE_FONT, is); 
    Font sizedFont = font.deriveFont(18f); 
    jLabel.setFont(sizedFont); 

} catch (Exception ex) { 
    System.err.println("Not loaded");} 

후에 당신은 당신이 그것에 크기를 설정해야 폰트를로드!

이렇게하려면 try/catch 블록을 사용해야합니다.

관련 문제