Приложение для извлечения информации для заполнения формы из базы данных или записи в базу данных из этой формы.Прямо сейчас я могу сделать и то, и другое с использованием netbeans и связью с моим тестовым сервером MySQL, который у меня запущен и работает в данный момент.
Проблема, с которой я столкнулся, заключается в том, что мне нужно распечатать информацию, полученную из базы данных, вформа, похожая на форму, а не на таблицу, чтобы соответствовать рукописным формам, которые мы в настоящее время используем в офисе.Есть ли способ напечатать весь JFrame или все содержимое JFrame так, как они выложены на экране, чтобы пользователь мог их видеть?
Все, что я видел до сих пор, будет печатать либо областьэкран (текстовое поле) или распечатайте его через таблицу.
Приложение будет скомпилировано для Linux и Windows, когда все будет сказано и сделано.
Код:
package Information;
import java.awt.print.*;
import java.awt.*;
import javax.swing.*;
public class HATDB extends javax.swing.JFrame implements Printable {
JFrame frameToPrint;
/** Creates new form HATDB */
public HATDB() {
}
@Override
public int print(Graphics g, PageFormat pf, int page) throws
PrinterException {
if (page > 0) { /* We have only one page, and 'page' is zero-based */
return NO_SUCH_PAGE;
}
/* User (0,0) is typically outside the imageable area, so we must
* translate by the X and Y values in the PageFormat to avoid clipping
*/
Graphics2D g2d = (Graphics2D) g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
/* Now print the window and its visible contents */
frameToPrint.printAll(g);
/* tell the caller that this page is part of the printed document */
return PAGE_EXISTS;
}
public HATDB(JFrame f) {
frameToPrint = f;
}
private void OK_ButtonActionPerformed(java.awt.event.ActionEvent evt) {
PrinterJob job = PrinterJob.getPrinterJob();
//job.setPrintable();
boolean ok = job.printDialog();
if (ok) {
try {
job.print();
} catch (PrinterException ex) {
ex.printStackTrace(System.err);
}
}
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
JFrame f = new JFrame("Print UI Example");
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HATDB().setVisible(true);
}
});
}
}