nathaniells freak
Mitglied
Wie versprochen das fertige Programm mit Code!
Ich muss es aber wieder auf 2 Threads aufteilen
Ich muss es aber wieder auf 2 Threads aufteilen
Java:
package myprintpreview;
import java.awt.print.PrinterException;
import java.awt.print.PrinterGraphics;
import java.awt.print.PrinterJob;
public class Main {
public static void main(String[] args) {
//System.out.println("Bin in der main() - Methode");
MyPrintPreview t = new MyPrintPreview();
t.setTitle("Drucken von \"Abfrage Bestellliste\" BatterieBau");
MyPrintPage page = t.createPage();
java.awt.image.BufferedImage buffimage = page.getImage();
java.awt.Graphics2D g = buffimage.createGraphics();
g.setBackground(new java.awt.Color(255,255,255));
// ---------------------------------------------------------------------
// Auffüllen des Hintergrundes mit Weiss
g.setColor(new java.awt.Color(255,255,255));
g.fillRect(0, 0, 595, 842);
// ---------------------------------------------------------------------
// Zeichnen der Markierung für die Übersschrift
g.setColor(new java.awt.Color(213,213,213));
g.fillRect(30, 25, 535, 60);
// ---------------------------------------------------------------------
// Zeichnen der Überschrift
g.setColor(new java.awt.Color(0,0,0));
g.setFont(new java.awt.Font(java.awt.Font.SERIF, java.awt.Font.PLAIN, 32));
g.drawString("B e s t e l l l i s t e B a t t e r i e B a u", 47, 65);
// ---------------------------------------------------------------------
// Zeichnen des Spalten mit Ihren Inhalten vorher muss aber die größe der Schrift umgeschaltet werden
g.setFont(new java.awt.Font(java.awt.Font.SERIF, java.awt.Font.PLAIN, 12));
// ---------------------------------------------------------------------
// Zeichnen der Fusszeile
// - Mitarbeiter
// - Datum und Uhrzeit
// - Seite x von y
// - In der DB wird eine Drucknummer erzeugt diese wird geholt und wird dann hier unten angezeigt
g.setColor(new java.awt.Color(213,213,213));
g.fillRect(30, 810, 535, 815);
// ---------------------------------------------------------------------
g.setColor(new java.awt.Color(0,0,0));
g.setFont(new java.awt.Font(java.awt.Font.SERIF, java.awt.Font.PLAIN, 10));
// ---------------------------------------------------------------------
g.drawString("65556757", 40, 825);
// ---------------------------------------------------------------------
g.drawString("Benutzername", 130, 825);
// ---------------------------------------------------------------------
java.util.Date date = new java.util.Date();
java.sql.Date sqldate = new java.sql.Date(date.getTime());
java.sql.Time sqltime = new java.sql.Time(date.getTime());
g.drawString(sqldate.toString(), 320, 825);
g.drawString(sqltime.toString(), 400, 825);
// ---------------------------------------------------------------------
g.drawString("Seite 1 / 3", 520, 825);
// ---------------------------------------------------------------------
page.setImage(buffimage);
t.addPage(page);
MyPrintPage page1 = t.createPage();
java.awt.image.BufferedImage buffimage1 = page1.getImage();
java.awt.Graphics2D g1 = buffimage1.createGraphics();
g1.setBackground(new java.awt.Color(255,255,255));
// ---------------------------------------------------------------------
// Auffüllen des Hintergrundes mit Weiss
g1.setColor(new java.awt.Color(255,255,255));
g1.fillRect(0, 0, 595, 842);
// ---------------------------------------------------------------------
// Zeichnen der Markierung für die Übersschrift
g1.setColor(new java.awt.Color(213,213,213));
g1.fillRect(30, 25, 535, 60);
// ---------------------------------------------------------------------
// Zeichnen der Überschrift
g1.setColor(new java.awt.Color(0,0,0));
g1.setFont(new java.awt.Font(java.awt.Font.SERIF, java.awt.Font.PLAIN, 32));
g1.drawString("B e s t e l l l i s t e T e s t", 47, 65);
// ---------------------------------------------------------------------
// Zeichnen des Spalten mit Ihren Inhalten vorher muss aber die größe der Schrift umgeschaltet werden
g1.setFont(new java.awt.Font(java.awt.Font.SERIF, java.awt.Font.PLAIN, 12));
// ---------------------------------------------------------------------
// Zeichnen der Fusszeile
// - Mitarbeiter
// - Datum und Uhrzeit
// - Seite x von y
// - In der DB wird eine Drucknummer erzeugt diese wird geholt und wird dann hier unten angezeigt
g1.setColor(new java.awt.Color(213,213,213));
g1.fillRect(30, 805, 535, 815);
// ---------------------------------------------------------------------
g1.setColor(new java.awt.Color(0,0,0));
g1.setFont(new java.awt.Font(java.awt.Font.SERIF, java.awt.Font.PLAIN, 10));
// ---------------------------------------------------------------------
g1.drawString("65556757", 40, 820);
// ---------------------------------------------------------------------
g1.drawString("Benutzername", 130, 820);
// ---------------------------------------------------------------------
java.util.Date date1 = new java.util.Date();
java.sql.Date sqldate1 = new java.sql.Date(date1.getTime());
java.sql.Time sqltime1 = new java.sql.Time(date1.getTime());
g1.drawString(sqldate1.toString(), 330, 820);
g1.drawString(sqltime1.toString(), 400, 820);
// ---------------------------------------------------------------------
g1.drawString("Seite 2 / 3", 520, 820);
// ---------------------------------------------------------------------
page1.setImage(buffimage1);
t.addPage(page1);
t.setPrintImage(buffimage1);
MyPrintPage page2 = t.createPage();
java.awt.image.BufferedImage buffimage2 = page2.getImage();
java.awt.Graphics2D g2 = buffimage2.createGraphics();
g2.setBackground(new java.awt.Color(255,255,255));
// ---------------------------------------------------------------------
// Auffüllen des Hintergrundes mit Weiss
g2.setColor(new java.awt.Color(255,255,255));
g2.fillRect(0, 0, 595, 842);
// ---------------------------------------------------------------------
// Zeichnen der Markierung für die Übersschrift
g2.setColor(new java.awt.Color(213,213,213));
g2.fillRect(30, 25, 535, 60);
// ---------------------------------------------------------------------
// Zeichnen der Überschrift
g2.setColor(new java.awt.Color(0,0,0));
g2.setFont(new java.awt.Font(java.awt.Font.SERIF, java.awt.Font.PLAIN, 32));
g2.drawString("B e s t e l l l i s t e L a g e r", 47, 65);
// ---------------------------------------------------------------------
// Zeichnen des Spalten mit Ihren Inhalten vorher muss aber die größe der Schrift umgeschaltet werden
g2.setFont(new java.awt.Font(java.awt.Font.SERIF, java.awt.Font.PLAIN, 12));
// ---------------------------------------------------------------------
// Zeichnen der Fusszeile
// - Mitarbeiter
// - Datum und Uhrzeit
// - Seite x von y
// - In der DB wird eine Drucknummer erzeugt diese wird geholt und wird dann hier unten angezeigt
g2.setColor(new java.awt.Color(213,213,213));
g2.fillRect(30, 800, 535, 815);
// ---------------------------------------------------------------------
g2.setColor(new java.awt.Color(0,0,0));
g2.setFont(new java.awt.Font(java.awt.Font.SERIF, java.awt.Font.PLAIN, 10));
// ---------------------------------------------------------------------
g2.drawString("65556757", 40, 815);
// ---------------------------------------------------------------------
g2.drawString("Benutzername", 130, 815);
// ---------------------------------------------------------------------
java.util.Date date2 = new java.util.Date();
java.sql.Date sqldate2 = new java.sql.Date(date2.getTime());
java.sql.Time sqltime2 = new java.sql.Time(date2.getTime());
g2.drawString(sqldate2.toString(), 340, 815);
g2.drawString(sqltime2.toString(), 400, 815);
// ---------------------------------------------------------------------
g2.drawString("Seite 3 / 3", 520, 815);
// ---------------------------------------------------------------------
page2.setImage(buffimage2);
t.addPage(page2);
/*byte b[] = new byte[3];
try {
System.in.read(b);
}
catch(Exception e) {
System.out.println(e.getMessage());
}*/
}
}
Java:
package myprintpreview;
/**
* @author Admin (Logic)
*/
public class FormPreviewFrame extends javax.swing.JFrame {
// ====================== Steuerelement Deklaration START ==================
private FormPrintPreview previewPrint = null;
// ===================== Steuerelement Deklaration END =====================
// ====================== Variablen Deklaration START ======================
// ======================= Variablen Deklaration END =======================
// ====================== Funktionen Definition START ======================
private java.awt.image.BufferedImage createPrintImage() {
java.awt.image.BufferedImage p = new java.awt.image.BufferedImage(595, 842, java.awt.image.BufferedImage.TYPE_INT_RGB);
java.awt.Graphics2D g = p.createGraphics();
return p;
}
public void setPrintImage(java.awt.image.BufferedImage X) {
this.previewPrint.setPrintImage(X);
}
// ======================= Funktionen Definition END =======================
// ==================== Eventhandler Definition START ======================
// ===================== Eventhandler Definition END =======================
// ======================= Konstruktor definition START ====================
public FormPreviewFrame() {
//System.out.println("Konstruktor FormPreviewFrame");
// erzeugen des eigenen Frames wovon ich erbe
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setBounds(100, 100, 595, 842);
this.setLayout(null);
this.setResizable(false);
this.setVisible(true);
// erzeuge abgeleitete Canvas Klasse
this.previewPrint = new FormPrintPreview();
this.add(this.previewPrint);
this.setComponentZOrder(this.previewPrint, 0);
}
// ======================= Konstruktor definition ENDE =====================
}
Java:
package myprintpreview;
import java.awt.print.PrinterException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @author Admin (Logic)
*/
public class FormPrintControl extends javax.swing.JFrame {
// ====================== Steuerelement Deklaration START ==================
private javax.swing.JButton ButtonNaechsteSeite;
private javax.swing.JButton ButtonVorherigeSeite;
private javax.swing.JButton ButtonErsteSeite;
private javax.swing.JButton ButtonLetzteSeite;
private javax.swing.JButton ButtonDrucken;
private javax.swing.JButton ButtonAbbrechen;
private javax.swing.JScrollPane ScrollPaneFrame;
// ===================== Steuerelement Deklaration END =====================
// ====================== Variablen Deklaration START ======================
private MyPrintPreview printpreview;
private int aktuellesimage;
// ======================= Variablen Deklaration END =======================
// ====================== Funktionen Definition START ======================
private void abbrechen() {
this.printpreview.schliessePrintPreview();
}
private void drucken() {
this.printpreview.printDokument3();
this.abbrechen();
}
private void ladeVorherigeSeite() {
if(this.printpreview.getMaxImages() > 0) {
int tmp = this.aktuellesimage - 1;
this.aktuellesimage = tmp;
if(tmp == 0) {
this.ButtonErsteSeite.setEnabled(false);
this.ButtonVorherigeSeite.setEnabled(false);
}
this.printpreview.setPrintPage(tmp);
// entsperren der Buttons für letzteSeite und naechsteSeite
if(this.ButtonLetzteSeite.isEnabled() == false) {
this.ButtonLetzteSeite.setEnabled(true);
}
if(this.ButtonNaechsteSeite.isEnabled() == false) {
this.ButtonNaechsteSeite.setEnabled(true);
}
}
}
private void ladeErsteSeite() {
if(this.printpreview.getMaxImages() > 0) {
this.ButtonErsteSeite.setEnabled(false);
this.ButtonVorherigeSeite.setEnabled(false);
this.printpreview.setPrintPage(0);
// entsperren der Buttons für letzteSeite und naechsteSeite
if(this.ButtonLetzteSeite.isEnabled() == false) {
this.ButtonLetzteSeite.setEnabled(true);
}
if(this.ButtonNaechsteSeite.isEnabled() == false) {
this.ButtonNaechsteSeite.setEnabled(true);
}
}
}
private void ladeLetzteSeite() {
if(this.printpreview.getMaxImages() > 0) {
this.ButtonLetzteSeite.setEnabled(false);
this.ButtonNaechsteSeite.setEnabled(false);
this.printpreview.setPrintPage((this.printpreview.getMaxImages() - 1));
// entsperren der Buttons für ersteSeite und vorherigeSeite
if(this.ButtonErsteSeite.isEnabled() == false) {
this.ButtonErsteSeite.setEnabled(true);
}
if(this.ButtonVorherigeSeite.isEnabled() == false) {
this.ButtonVorherigeSeite.setEnabled(true);
}
}
}
private void ladeNaechsteSeite() {
if(this.printpreview.getMaxImages() > 0) {
int tmp = this.aktuellesimage + 1;
this.aktuellesimage = tmp;
if(tmp == (this.printpreview.getMaxImages() - 1)) {
this.ButtonLetzteSeite.setEnabled(false);
this.ButtonNaechsteSeite.setEnabled(false);
}
this.printpreview.setPrintPage(tmp);
// entsperren der Buttons für ersteSeite und vorherigeSeite
if(this.ButtonErsteSeite.isEnabled() == false) {
this.ButtonErsteSeite.setEnabled(true);
}
if(this.ButtonVorherigeSeite.isEnabled() == false) {
this.ButtonVorherigeSeite.setEnabled(true);
}
}
}
public void setAktuelleSeite(int X) {
if(this.printpreview.getMaxImages() > 0) {
if(X == 0) {
this.ButtonErsteSeite.setEnabled(false);
this.ButtonVorherigeSeite.setEnabled(false);
this.ButtonLetzteSeite.setEnabled(true);
this.ButtonNaechsteSeite.setEnabled(true);
}
else {
if(X == (this.printpreview.getMaxImages() - 1)) {
this.ButtonErsteSeite.setEnabled(true);
this.ButtonVorherigeSeite.setEnabled(true);
this.ButtonLetzteSeite.setEnabled(false);
this.ButtonNaechsteSeite.setEnabled(false);
}
else {
if(this.ButtonLetzteSeite.isEnabled() == false) {
this.ButtonLetzteSeite.setEnabled(true);
}
if(this.ButtonNaechsteSeite.isEnabled() == false) {
this.ButtonNaechsteSeite.setEnabled(true);
}
if(this.ButtonErsteSeite.isEnabled() == false) {
this.ButtonErsteSeite.setEnabled(true);
}
if(this.ButtonVorherigeSeite.isEnabled() == false) {
this.ButtonVorherigeSeite.setEnabled(true);
}
}
}
this.aktuellesimage = X;
}
else {
this.ButtonErsteSeite.setEnabled(false);
this.ButtonVorherigeSeite.setEnabled(false);
this.ButtonLetzteSeite.setEnabled(false);
this.ButtonNaechsteSeite.setEnabled(false);
}
}
public int getAktuelleSeite() {
return this.aktuellesimage;
}
// ======================= Funktionen Definition END =======================
// ==================== Eventhandler Definition START ======================
private void abbrechenActionPerformed() {
this.abbrechen();
}
private void druckenActionPerformed() {
this.drucken();
}
private void ladeVorherigeSeiteActionPerformed() {
this.ladeVorherigeSeite();
}
private void ladeErsteSeiteActionPerformed() {
this.ladeErsteSeite();
}
private void ladeLetzteSeiteActionPerformed() {
this.ladeLetzteSeite();
}
private void ladeNaechsteSeiteActionPerformed() {
this.ladeNaechsteSeite();
}
// ===================== Eventhandler Definition END =======================
// ======================= Konstruktor definition START ====================
public FormPrintControl(MyPrintPreview X) {
//System.out.println("Konstruktor FormPrintControl");
this.printpreview = X;
// erzeugen des eigenen Frames wovon ich erbe
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setBounds(695, 100, 250, 110);
this.setLayout(null);
this.setResizable(false);
this.setTitle("Druckkontrolle");
this.ScrollPaneFrame = new javax.swing.JScrollPane();
this.ScrollPaneFrame.setBounds(0, 0, 250, 110);
this.add(this.ScrollPaneFrame);
this.setComponentZOrder(this.ScrollPaneFrame, 0);
this.ButtonErsteSeite = new javax.swing.JButton("<<");
this.ButtonErsteSeite.setBounds(20, 20, 50, 20);
this.ScrollPaneFrame.add(this.ButtonErsteSeite);
this.ScrollPaneFrame.setComponentZOrder(this.ButtonErsteSeite, 0);
this.ButtonVorherigeSeite = new javax.swing.JButton("<");
this.ButtonVorherigeSeite.setBounds(70, 20, 50, 20);
this.ScrollPaneFrame.add(this.ButtonVorherigeSeite);
this.ScrollPaneFrame.setComponentZOrder(this.ButtonVorherigeSeite, 0);
this.ButtonNaechsteSeite = new javax.swing.JButton(">");
this.ButtonNaechsteSeite.setBounds(120, 20, 50, 20);
this.ScrollPaneFrame.add(this.ButtonNaechsteSeite);
this.ScrollPaneFrame.setComponentZOrder(this.ButtonNaechsteSeite, 0);
this.ButtonLetzteSeite = new javax.swing.JButton(">>");
this.ButtonLetzteSeite.setBounds(170, 20, 50, 20);
this.ScrollPaneFrame.add(this.ButtonLetzteSeite);
this.ScrollPaneFrame.setComponentZOrder(this.ButtonLetzteSeite, 0);
this.ButtonDrucken = new javax.swing.JButton("Drucken");
this.ButtonDrucken.setBounds(20, 50, 100, 20);
this.ScrollPaneFrame.add(this.ButtonDrucken);
this.ScrollPaneFrame.setComponentZOrder(this.ButtonDrucken, 0);
this.ButtonAbbrechen = new javax.swing.JButton("Abbrechen");
this.ButtonAbbrechen.setBounds(120, 50, 100, 20);
this.ScrollPaneFrame.add(this.ButtonAbbrechen);
this.ScrollPaneFrame.setComponentZOrder(this.ButtonAbbrechen, 0);
// Alle Eventhandler implementieren
this.ButtonAbbrechen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
abbrechenActionPerformed();
}
});
this.ButtonDrucken.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
druckenActionPerformed();
}
});
this.ButtonVorherigeSeite.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ladeVorherigeSeiteActionPerformed();
}
});
this.ButtonErsteSeite.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ladeErsteSeiteActionPerformed();
}
});
this.ButtonLetzteSeite.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ladeLetzteSeiteActionPerformed();
}
});
this.ButtonNaechsteSeite.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ladeNaechsteSeiteActionPerformed();
}
});
this.setVisible(true);
}
// ======================= Konstruktor definition ENDE =====================
}