Estou fazendo uma aplicacao em Swing e quero utilizar uma fonte(tipo de letra) que encontrei na internet nos JLabels. Como faço para utilizar sem a necessidade de instalar essa fonte no Windows ou Linux, já que a aplicacao é para rodar nos dois. Tipo quero utilizar a fonte na aplicaceo e distribuir junto com a aplicacao.
Tenho q colocar em algum pacote ou diretorio especial?
Vou dar um exemplo simples.
Para rodar este programa, você precisa criar um subdiretório “/resources” na sua aplicação, e copiar um arquivo .ttf (no meu caso copiei uma das fontes do Linux, cujo nome é luxisb.ttf.)
import java.io.*;
import java.awt.*;
import javax.swing.*;
class ExemploFonte extends JFrame {
private static Font aFont;
private static Font loadFont (String resourceName) {
InputStream is;
Font font = null;
try {
is = ExemploFonte.class.getResourceAsStream (resourceName);
font = Font.createFont (Font.TRUETYPE_FONT, is);
is.close();
} catch (IOException ex) {
ex.printStackTrace();
} catch (FontFormatException ex) {
ex.printStackTrace();
}
return font;
}
static {
aFont = loadFont ("/resources/luxisb.ttf");
}
private void initComponents() {
JLabel jl = new JLabel ("Exemplo");
jl.setFont (aFont.deriveFont (25.0f));
getContentPane().add (jl);
setBounds (0, 0, 200, 200);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
}
public ExemploFonte () {
super();
initComponents();
}
public static void main(String[] args) {
ExemploFonte e = new ExemploFonte ();
e.setVisible (true);
}
}