Avatar billede tripwire Nybegynder
14. november 2005 - 22:14 Der er 6 kommentarer og
1 løsning

Udskriv markering fra jtextarea

Hej

Jeg har fundet følgende kode i et andet spørgsmål og det fungerer også fint nok, men ville være muligt at udvide programmet så man kan vælge kun at udskrive markeringen, hvis man altså har markeret noget?

Jeg bruger et JTextArea.



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

class PrintUtility implements Printable
{
        private Component componentToBePrinted;

        public static void printComponent(Component c)
        {
            new PrintUtility(c).print();
        }

        public PrintUtility(Component componentToBePrinted)
        {
            this.componentToBePrinted = componentToBePrinted;
        }

        public void print()
        {
            PrinterJob printJob = PrinterJob.getPrinterJob();
            printJob.setPrintable(this);
            if (printJob.printDialog())
              try
              {
                printJob.print();
            }
            catch(PrinterException pe)
            {
                System.out.println("Error printing: " + pe);
            }
          }

        public int print(Graphics g, PageFormat pageFormat, int pageIndex)
        {
            if (pageIndex > 0)
            {
                return(NO_SUCH_PAGE);
            }
            else
            {
                Graphics2D g2d = (Graphics2D)g;
                g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
                disableDoubleBuffering(componentToBePrinted);
                componentToBePrinted.paint(g2d);
                enableDoubleBuffering(componentToBePrinted);
                return(PAGE_EXISTS);
            }
        }

        public static void disableDoubleBuffering(Component c)
        {
            RepaintManager currentManager = RepaintManager.currentManager(c);
            currentManager.setDoubleBufferingEnabled(false);
        }

        public static void enableDoubleBuffering(Component c)
        {
            RepaintManager currentManager = RepaintManager.currentManager(c);
            currentManager.setDoubleBufferingEnabled(true);
        }
    }
Avatar billede tripwire Nybegynder
15. november 2005 - 12:55 #1
anyone?
Avatar billede philox Nybegynder
15. november 2005 - 23:14 #2
Kig på denne klasse: java.awt.print.PrinterJob
Avatar billede philox Nybegynder
15. november 2005 - 23:17 #3
Avatar billede philox Nybegynder
15. november 2005 - 23:34 #4
Du skal vel vælge, hvordan du vil printe den markeret tekst?
Vil du printe JTextArea bare uden den markerede tekst, eller vil du lave et "nyt" område, hvori den markerede tekst står?
Avatar billede tripwire Nybegynder
21. november 2005 - 19:29 #5
Det jeg vil have, er at den print dialog jeg får frem, giver mig muligheden for udskrive markeringen. Jeg kan godt udskrive markeringen ved at implementere det selv, men jeg vil have muligheden på den "windows" print dialog som dukker frem....
Avatar billede philox Nybegynder
21. november 2005 - 19:55 #6
Det vil kræve en tilpasset Print-dialog. Jeg har svært ved at se, hvordan man skulle kunne lave en så generel, at det er brugbar uden selv, at skulle lave stor implementering, så jeg tror ikke den er lavet for dig.


Man kan muligvis blive inspireret af følgende (er dog ikke direkte java)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/commondialogboxlibrary/aboutcommondialogboxes/printpropertysheet.asp
Avatar billede tripwire Nybegynder
27. november 2005 - 09:32 #7
Øv, det ser en smule sværere ud end jeg umiddelbart havde regnet med.. takker for indsatsen.. finder en anden løsning.
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