Acrescentar uma linha

1 resposta
valder

Olá pessoal peguei esse exemplo e gostaria de trabalhar nele porém eu não consegui acrescentar mais uma linha !
Gostaria de adicionar uma segunda linha com uma fonte diferente.
Obrigado

import javax.swing.*;
import java.awt.print.*;
import java.awt.*;

public class PrintExample {
public static void main(String[] args)
{
JFrame frame = new JFrame();

final JPanel panel = new JPanel();
JLabel label = new JLabel("É um exemplo de impressão");
// Adicionar uma segunda linha sem o uso do "\n" 
label.setFont( new Font("Arial Narrow", Font.ITALIC, 10) );
// adicionar uma segunda fonte !!!! 

frame.getContentPane().add(panel);

panel.add(label);

frame.pack();
frame.setVisible(false);
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(new Printable() {
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
throws PrinterException
{
if (pageIndex >= 1) {
return Printable.NO_SUCH_PAGE;
} else {
((Graphics2D)graphics).translate(pageFormat.getImageableX(), pageFormat.getImageableY());
panel.print(graphics);

return Printable.PAGE_EXISTS;
}
}
});
try
{
job.print();
}
catch (PrinterException ex)
{
ex.printStackTrace();
}
System.exit(0);
}
}

1 Resposta

P

ola amigo…

para adicionar uma nova linha vc tem que usar o método setText() do JLabel…

basta que vc faça:

void novalinha(String linha){
  label.setText(label.getText()+"\n"+linha);
  label.setFont( new Font("Arial Narrow", Font.ITALIC, 10) ); 
}

já a fonte não é possível, pois o atributo Font refere-se a todo o JLabel, então qd vc muda a fonte, vc muda do JLabel, não do texto, paragrafo ou coisa assim…

oq daria pra fazer é vc adicionar um JLabel a cada nova fonte que vc precisar e ir fazendo isso a cada nova linha que vc tiver…

void novalinha(String linha, Font f){
  JLabel label = new JLabel(linha);   
  // Adicionar uma segunda linha sem o uso do "\n"   
  label.setFont( f );   
  // adicionar uma segunda fonte !!!!   
  frame.getContentPane().add(panel); 
  panel.add(label);
}

aí no seu metodo Main das linhas 11 a 18 vc substituiria por:

novalinha("É um exemplo de impressão");
novalinha("Com uma fonte diferente agora",  new Font("Arial Narrow", Font.BOLD, 14) );

espero ter ajudado…

att, Philips

Criado 22 de abril de 2009
Ultima resposta 23 de abr. de 2009
Respostas 1
Participantes 2