2014-10-07 3 views
2

Я пытаюсь отобразить font awesome иконки на JButton. Я сделал следующееFont Awsome on JButton

Font font = null; 
try 
{ 
    font = Font.createFont(Font.TRUETYPE_FONT, new File("../icons/fontawesome-webfont.ttf")); 
    font = font.deriveFont(18f); 

    GraphicsEnvironment ge = 
     GraphicsEnvironment.getLocalGraphicsEnvironment(); 
    ge.registerFont(font); 
} 
catch (FontFormatException ex){ex.printStackTrace();} 
catch (IOException ex){ex.printStackTrace();} 

private JButton save_btn = new JButton(); 
save_btn.setFont(font); 
save_btn.setText("\uf0c7"); 
save_btn.setPreferredSize(buttonDimension); 

Но все, что я получаю enter image description here

Если я использую шрифт с JTextArea, он отлично работает:

JTextArea t = new JTextArea(); 
t.setRows(2); 
t.setColumns(12); 
t.setFont(font); 
t.setText("\uF0F3 \uF1EC \uf0f3 \uf1ec"); 
buttonPanel.add(t); 

Я получаю enter image description here

+0

Что выход для 'System.out.println (font.canDisplay ("\ uf0c7"));'? –

+0

Проверить погоду - это шрифт, который поддерживается в нашей системе? – Krishna

+0

Вы ссылались на правильный код символа? Вот аналогичная проблема: http://stackoverflow.com/questions/9639894/add-icons-to-jbutton-using-custom-font-from-awesomefont-and-unicode-characters-i – stuXnet

ответ

2

Я предполагаю, что размеры вашей кнопки слишком малы для отображения символа, который вы хотите отобразить, и кнопки r чтобы показать «...», которые, похоже, не имеют хороших представлений в шрифте.

+0

Да, я думаю, что ваше предположение хорошо, но есть ли способ заставить текст отображаться в любом случае? – Oleg

+1

http://stackoverflow.com/questions/5808195/removing-the-three-dots-from-a-jbutton – stryba

0

Я нашел эту проблему, я удалил

save_btn.setPreferredSize(buttonDimension); 

И теперь он отлично работает!

enter image description here

+0

Вы также можете установить вставки полей в 0. Таким образом, поля влево и вправо войдут (если это то, что вы пытались сделать с помощью 'setPreferredSize' ...' button.setMargins (новые вставки (0, 0, 0, 0)); ' –

Смежные вопросы