Solved

Printing in Java Application

Posted on 1998-02-16
8
162 Views
Last Modified: 2013-11-23
A rather simple question I hope. How do I print the text within a component in Java? or print the
 contents of a file? For example, in a TextArea? I see there is a printall method for graphics but it only
 does a screen snap shot and not the contents of the component. I looked into the System.out.println but
 not sure how to reroute the standard output stream. If possible?

 Thanks

 Benny
0
Comment
Question by:bcsystem
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
8 Comments
 

Accepted Solution

by:
ammorris earned 100 total points
ID: 1233074
Using the PrintJob class a good way to print.  If you don't want your printout to look the same as your component, you can do this with your paint() method:

if (g instanceof PrintGraphics) // this is the interface given for printAll calls
{
   // do printout how you want it, use normal graphics calls like    // drawString(), etc.
}
else
{
   // your normal paint or super.paint(g)
}

Just get a PrintJob object from the Toolkit, do a printAll, and dispose of the Graphics object.  It should do the special printing you want.
0
 

Author Comment

by:bcsystem
ID: 1233075
Can you give me an example of how I would print text from within a textarea class to a print?

Thanks
0
 

Expert Comment

by:ammorris
ID: 1233076
Read the text line by line from the text area and drawString() it on the Graphics object.  Or you might be able to call textArea.paint(g).
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:bcsystem
ID: 1233077
Below is a sample bit of code I have..

void print_Clicked(Event event) {

      PrintJob pjob = getToolkit().getPrintJob(this,"Printing Test", null);

    if (pjob != null)
    {          
      Graphics pg = pjob.getGraphics();

      if (pg != null)
      {
        String tempx = codeTextBox.getText();
        pg.drawString(tempx,0,0);
       
        pg.dispose(); // flush page
      }
                 
    pjob.end();
      }
    }

The program GPFs when it hits the drawString method.  Is it Visual Cafe 1.1 bug?

Thanks
0
 

Expert Comment

by:ammorris
ID: 1233078
I don't know... that should work, it's the way my co-worker and I did it.  I have never used Visual Cafe, so I don't know.  The way I was suggesting was to put that drawString call in your paint method, calling it only if the graphics object implemented the PrintGraphics interface.

Java programs should never GPF, is that right?
0
 

Author Comment

by:bcsystem
ID: 1233079
This is what I get below..I get the windows GPF box and when I click on details..it shows

JAVA caused an invalid page fault in
module WINAWT.DLL at 0137:1000c8c4.
Registers:
EAX=00000000 CS=0137 EIP=1000c8c4 EFLGS=00010202
EBX=00e7af88 SS=013f ESP=020afd2c EBP=020afd38
ECX=ffffff4c DS=013f ESI=00e83a10 FS=39d7
EDX=00000000 ES=013f EDI=007a3370 GS=0000
Bytes at CS:EIP:
8b 08 8b 51 14 8b 1a 8b 4b 08 85 c9 74 1b 8b 4d
Stack dump:
020afd74 020afd70 00000000 020afee0 1001d30d 00e7af88 00e83a10 00000000 00000000 00e7af88 00e7ac40 21c87727 020afd70 020afee0 01f6d360 007a2920
0
 

Expert Comment

by:ammorris
ID: 1233080
Sounds like a bug.  It works with Sun's VM.

0
 

Author Comment

by:bcsystem
ID: 1233081
I still continue to have problems with printing.  I'm trying to determine if this is a Visual Cafe problem or Sun VM.  Does anyone have a simple print application that I can compile and test with JDK 1.1?
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question