Results 1 to 4 of 4
  1. #1
    adonaldson is offline Member
    Join Date
    Feb 2012
    Posts
    3
    Rep Power
    0

    Default drawing a centered grid with JFrame

    I am trying to figure out how to draw a grid that is prompted by the user on how many squares wide and high. With a 10% boarder that resizes with the window.

    I have it working up to an xy axis in the window.

    How do I get it to make a grid of even squares?

    Java Code:
    package gridWindow;
    
    import java.awt.Graphics;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import java.util.Scanner;
    
    public class GridWindow extends JFrame {
    
        private static final int FRAME_SIZE = 500;
        private static final int MAX_NUM = 40;
        private static final int MIN_NUM = 10;
        private static int numberOfLines;
        
    
        public static void main(String[] args) {
           GridWindow guiWindow = new GridWindow();
            guiWindow.setSize(FRAME_SIZE, FRAME_SIZE);
            guiWindow.setDefaultCloseOperation(EXIT_ON_CLOSE);
            Scanner keyboard = new Scanner(System.in);
            String valueString;
    
    
            //Error check loop
    
            do {
                valueString = JOptionPane.showInputDialog("Enter the number of lines in the grid (10-40): ");
                guiWindow.numberOfLines = Integer.parseInt(valueString);
    
            } while (numberOfLines < MIN_NUM || numberOfLines > MAX_NUM);
    
            guiWindow.setVisible(true);
    
        }
    
        @ Override
        public void paint(Graphics g) {
            super.paint(g);
                    
            Graphics canvas = getContentPane().getGraphics();
            int width = this.getContentPane().getWidth();
            int height = this.getContentPane().getHeight();
            
            double boarder = width*0.1;
            int sideBoarder = (int)boarder;
           
           
    
            canvas.drawLine(width/2, sideBoarder , width/2, height-sideBoarder);
            canvas.drawLine(sideBoarder, height/2, width-sideBoarder, height/2);
        }
    }
    Thank you,
    Mandi

  2. #2
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    Eastern Florida
    Posts
    14,793
    Rep Power
    20

    Default Re: drawing a centered grid with JFrame

    How do I get it to make a grid of even squares
    Take a piece of paper and a pencil, draw out what you want to see and then derive the arithmetic statements to compute the values you need to do the drawing.

  3. #3
    camickr is offline Senior Member
    Join Date
    Jul 2009
    Posts
    1,143
    Rep Power
    5

    Default Re: drawing a centered grid with JFrame

    You should NOT be overriding the paint() method of a JFrame.

    Custom painting is done by overriding the paintComponent(...) method of a JPanel (or JComponent) and then you add the panel to the frame. See: Lesson: Performing Custom Painting (The Java™ Tutorials > Creating a GUI With JFC/Swing) for more information and examples.

  4. #4
    DarrylBurke's Avatar
    DarrylBurke is offline Moderator
    Join Date
    Sep 2008
    Location
    Madgaon, Goa, India
    Posts
    9,918
    Rep Power
    16

    Default Re: drawing a centered grid with JFrame

    Moved from 'New to Java'

    db
    Why do they call it rush hour when nothing moves? - Robin Williams

Similar Threads

  1. Problem Drawing Grid with BufferedImage.
    By Shikatsu in forum Java 2D
    Replies: 10
    Last Post: 11-26-2011, 12:01 AM
  2. drawing a 3D hex-grid map
    By samanyu in forum Java Gaming
    Replies: 5
    Last Post: 07-14-2011, 01:54 AM
  3. JFrame: JButtons in a grid
    By jackal in forum New To Java
    Replies: 2
    Last Post: 06-09-2010, 07:56 PM
  4. Drawing a grid
    By CrystalMoth in forum Java 2D
    Replies: 11
    Last Post: 01-10-2010, 05:07 AM
  5. How do you draw a grid in a JFrame
    By Singing Boyo in forum New To Java
    Replies: 2
    Last Post: 03-11-2009, 02:31 AM

Posting Permissions

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