Boa noite amigos!
Estou usando o JFreeChart para gerar alguns gráficos, e encontrei um problema.
Estou usando:
JFreeChart mychart = ChartFactory.createPieChart3D("", myServletPieChart, true, true, false);
PiePlot plot = (PiePlot) mychart.getPlot();
plot.setLabelFont(new Font("Arial", Font.BOLD, 11));
Funciona muito bem, porém a fonte fica diferente em diferentes servidores (no Windows funciona pois tem Arial, mas no Linux não, assumindo outra fonte como default).
O problema, é que com fonte diferente o label acaba ficando maior, e quebrando linha, o que não pode ocorrer.
Alguém poderia me ajudar com um dos dois caminhos abaixo, ou a sugestão de um novo?
- Aumentar o tamanho do espaço dedicado ao label, para que o mesmo nunca quebre de linha (não consegui fazer isso).
- Usar uma fonte que fique no próprio WAR, fazendo assim com que seja usada indepenente do OS (não sei se isso é possível).
Toda ajuda é muito bem vinda!
Muito obrigado desde já,
Rodrigo
Pessoal, fiz da seguinte forma:
public class InternalFont {
public final static Font Arial() {
try {
final Font font = Font.createFont(Font.TRUETYPE_FONT, InternalFont.class.getResourceAsStream("arial.ttf")); //arial.ttf está no mesmo pacote da InternalFont
return font.deriveFont(Font.BOLD, 11);
} catch (final Exception e) {
e.printStackTrace();
return new Font("Arial", Font.BOLD, 11);
}
}
}
E depois:
PiePlot plot = (PiePlot) mychart.getPlot();
plot.setLabelFont(InternalFont.Arial());
No ambiente de desenvolvimento deu certo (Windows, não caiu no catch), já pedi a promoção para homologação (Linux), assim que testar posto aqui o resultado.
Abraços!
O teste no ambiente de homologação não funcionou, ele encontra a fonte dentro do WAR, porém ignora ela e printa as informações no gráfico com uma outra fonte, somente quando está no ambiente Linux (pois no Windows está funcionando corretamente).
Não sei o que pode estar errado nessa linha de raciocínio, mas ja dediquei muito tempo nela, por isso não vou mais insistir nela.
Vou tentar agora aumentar o espaço destinado a legenda. Alguém tem alguma sugestão de como fazer? Já pesquisei e não achei nada.
Muito obrigado!
Senhores, até o momento não tive sucesso.
Dependendo do tamanho da palavra/frase no label, ele quebra linha, e isso não pode acontecer.
Já tentei mudar a fonte (mas ele não respeita), forçar um tamanho default maior para o label (não encontrei nada referente a isso), etc.
Por favor, se alguém puder ajudar, estou precisando bastante de ajuda, pois já esgotei as pesquisas no Google e sem sucesso.
Muito obrigado.