Avatar billede seattaken Nybegynder
07. december 2004 - 15:50 Der er 8 kommentarer og
1 løsning

Udskriv grafik i Java

Hej alle

Jeg har nogle problemer med at finde ud af hvordan jeg kan udskrive en del af et program. Programmet har nogle knapper i venstre side der bliver defineret i en anden klasse der hedder programBGF. Den klasse jeg skal have skrevet noget ud fra hedder holdopstillingBGF og jeg har kigget på nogle af de tidligere indlæg men kan ikke finde en løsning udfra disse og heller relevante links. Dette kan skyldes min kompetence.

Knappen der er defineret i programBGF kaldes ved hjælp af:

public void kaldKnap3(){
        udskriv();
    }
   
    public void udskriv()
    {

når jeg trykker på knappen vil jeg gerne have udskrevet et billede af en holdopstilling der lavet under klassen holdopstillingBGF

Er der nogen der har en ide til hvordan man kan løse dette?
Avatar billede mikkelbm Nybegynder
07. december 2004 - 15:55 #1
Prøv at ta' et kig på:

http://java.sun.com/docs/books/tutorial/2d/printing/index.html

At udskrive til printer i Java er desværre ikke helt simpelt.
Avatar billede seattaken Nybegynder
07. december 2004 - 15:56 #2
Programmet er opdelt sådan her
___________________________________________
|        |                                |
|        |                                |
|        |                                |
|        |      x                        |
|        |      x                        |
|  x    |      x                        |
|        |      x                        |
|        |      x                        |
|        |      x                        |
|_________|_________________________________|


ved det første x sidder knappen og ved de andre x'er sidder det billede jeg gerne vil have skrevet ud. Billedet sidder i et seperat panel
Avatar billede seattaken Nybegynder
07. december 2004 - 15:58 #3
Nej jeg må sige at have fået kam til mit hår med hensyn til det. Har fundet mange eksempler og ved nogenlunde hvad man skal have med men ved ikke hvordan det skal implementeres for at det virker korrekt.
Avatar billede _carsten Nybegynder
07. december 2004 - 18:03 #4
Her er et eksempel og jeg kan ikke lave det mere simpelt!

import java.awt.Graphics;
import java.awt.Image;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterJob;


public class Q extends javax.swing.JFrame implements Printable{

    public Q() {
        initComponents();
    }


    private void initComponents() {
        jButton1 = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jButton1.setText("jButton1");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                n(evt);
            }
        });

        getContentPane().add(jButton1, java.awt.BorderLayout.NORTH);

        jPanel1.setBackground(new java.awt.Color(255, 0, 102));
        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

        pack();
    }

    private void n(java.awt.event.ActionEvent evt) {                 
        pJob = PrinterJob.getPrinterJob();
        pJob.setPrintable(this);

        try{
            pJob.print();
        }
        catch(java.awt.print.PrinterException p){
            p.printStackTrace();
        }
    }                 

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Q().setVisible(true);
            }
        });
    }

    public int print(Graphics g, PageFormat pageFormat, int param) throws java.awt.print.PrinterException {
        if(param <= 0){
                // Erstat med det image du vil have udskrevet
                Image img = jPanel1.createImage(jPanel1.getWidth(), jPanel1.getHeight());

                g.drawImage( img, 100,100, this);
                return Printable.PAGE_EXISTS;
        }
        else
            return Printable.NO_SUCH_PAGE;
               
    }
       
    private PrinterJob pJob;
    private javax.swing.JButton jButton1;
    private javax.swing.JPanel jPanel1;
}
Avatar billede seattaken Nybegynder
10. december 2004 - 12:00 #5
Det er bare fjong - har fået det til at virke men ikke helt.
Avatar billede mikkelbm Nybegynder
10. december 2004 - 13:33 #6
Det var da ellers flinkt af dig selv at snuppe pointene, når du både har fået links og eksempler!

Det er jo ikke meget information du giver, så det er svært at pejle sig ind på problemet!
Avatar billede _carsten Nybegynder
10. december 2004 - 18:47 #7
Virkelig "professionel" håndtering af spørgsmål!
Avatar billede seattaken Nybegynder
11. december 2004 - 20:45 #8
Det er jeg ked af - som i kan se så er jeg ret ny men kan ikke helt finde ud af det med hvordan man giver point. Kan det passe at man kun kan give point når der er en der har svaret? og ikke på kommentarer?
Avatar billede _carsten Nybegynder
12. december 2004 - 13:32 #9
Ja - det er korrekt, kun point til svar.

Selvfølgelig kan man trykke forkert når man er ny, og er det tilfældet for dit vedkommende, så opretter du bare et nyt spørgsmål på 60 point med teksten: Point til mikkelbm og _carsten, samt et link til dette spørgsmål, så tror jeg både mikkelbm og jeg, hver smider et svar der og du kan så fordele point som du mener det skal være.

Bagefter er der garanteret ingen som kan huske hvad det hele handlede om.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester