Results 1 to 2 of 2
  1. #1
    scana is offline Member
    Join Date
    Jan 2010
    Posts
    1
    Rep Power
    0

    Default Printing JFrame + it`s content

    Hello,
    maybe some of you guys will be able to help me.

    This is a little part of my crossword generator.

    I`m not able to get my whole JFrame to be printed (using some PDF printer). All I can get is blank page with grey rectangle (like it`s printing only a background of this window).


    I`ve implemented this to able to print stuff.
    Java Printing - Java - Source Code | DreamInCode.net

    Few of my classes

    Main window - (the one that I`m trying to print)
    Java Code:
    	
    public class Krzyzowka extends JFrame{
    		
           private Crossword cw;
    
    	public Krzyzowka(Crossword x) {
    			this.cw = x;
    
    			Grafa d = new Grafa(cw);
    			d.setSize(80, 80);
    			add(d);
    		}
    	
    }
    JFrame content - I draw the whole crossword here - well, it would be even better if some1 could help me with printing only this thing.
    I`ve cut out some of the code, cause it`s here only for that u could get an idea how I`m drawing this.
    Java Code:
    public class Grafa extends Panel{
    	
    	private Crossword cw;
    	public Grafa(Crossword cw) {
    		this.cw = cw;
    	}
    	
    	@Override
    	public void paint(Graphics arg0) {
    		Board board = cw.getBoard();
    		Graphics g = getGraphics();
                    
    		int i=0;
    		for (int j = 0; j < board.getHeight(); ++j){
    			
    		
    		 for (i = 0; i < board.getWidth(); ++i) 
    			{
    			
    				if (board.getCell(i, j).getContent().length() > 0) {
    					
    					if(!board.getCell(i, j).getContent().contentEquals("\0")){
    						
    						g.drawRect(j * 40 - 120, i * 40 + 81 , 40, 40);
    						g.setColor(Color.gray);
    						g.drawRect(j * 40 -118, i * 40 + 83, 36, 36);
    						g.setColor(Color.black);
    
                                                    [...]
    
    	}
    
       
    	
    	}
    And finally, I press the button, and window with my crossword is now visible (it works correctly), and Printing Dialog is appearing.

    Java Code:
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
    		
                    test.drukTak();
    		
                    dp1 = new Krzyzowka(test);
    		dp1.setSize(500, 500);
    		dp1.setVisible(true);
                   
                    PrintUtilities.printComponent(dp1);
    		       
        }
    Then I choose the printer (PDF one), and I`ll can get is that damn, grey rectangular :|

    Any idea how to print my crossword, anyone? Or someone could possible tell me, what I`m doing wrong?

    Sorry for my english, I hope that u will be able to understand what I mean and what I`m trying to do with this code. Ask any questions, I`ll try to respond as soon as possible.

    Greetz,
    Scana

  2. #2
    zweibieren is offline Senior Member
    Join Date
    Aug 2009
    Location
    Pittsburgh, PA
    Posts
    285
    Rep Power
    11

    Default

    Marty Hall's tutorial on PrintUtilities emphasizes the need to turn off double buffering.
    I don't see in your code where you did that.

Similar Threads

  1. Passing data from one JFrame to another JFrame
    By tarami in forum New To Java
    Replies: 3
    Last Post: 08-06-2009, 05:44 PM
  2. Replies: 2
    Last Post: 05-30-2009, 10:42 AM
  3. Replies: 4
    Last Post: 04-22-2009, 11:02 PM
  4. JFrame printing
    By greeshma in forum New To Java
    Replies: 4
    Last Post: 08-11-2008, 03:14 PM
  5. Replies: 0
    Last Post: 02-12-2008, 05:05 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •