ciao a tutti
ho realizzato un'applicazione per gestire le fatture.
ecco uno screenshot:
il JInternalFrame è diviso in due pannelli, uno superiore dove ho tutti i dati e uno inferiore dove ho il pulsante stampa.
Questo è il codice del pannello inferiore:
codice:
pannelloSotto = new JPanel();
pannelloSotto.setSize(new Dimension(570,14));
pannelloSotto.setBackground(Color.white);
stampa = new JButton("Stampa la fattura");
stampa.addActionListener(new classeStampa());
pannelloSotto.add(stampa);
in classestampa ho questo codice:
codice:
public void actionPerformed(ActionEvent e) {
if (e.getSource() instanceof JButton) {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
if (printJob.printDialog()) {
try {
printJob.print();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
public int print(Graphics g, PageFormat pf, int pi) throws PrinterException {
if (pi >= 1) {
return Printable.NO_SUCH_PAGE;
}
return Printable.PAGE_EXISTS;
}
che poi non sarebbe altro che il codice che ho trovato sul sito della sun (link al sito) cliccando su Printing the Contents of a Component.
ed ho levato la parte che mi disegna le forme
ovviamente levando le forme non mi stampa niente, cioè il foglio viene preso ma non stampa nulla.
cosa dovrei inserire nel metodo print per farmi stampare solo il pannello di sopra?
inoltre, il fatto che ho inserito il jscrollpane potrebbe creare problemi per la stampa, ad esempio stampandomi solamente quello che vedo a video e non il pannello interno?
grazie a tutti!
spero di essere stato il + chiaro possibile