Java-Gaming.org Hi !
Featured games (81)
games approved by the League of Dukes
Games in Showcase (513)
Games in Android Showcase (119)
games submitted by our members
Games in WIP (576)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Invisible border in JFrame  (Read 882 times)
0 Members and 1 Guest are viewing this topic.
Offline Onatoko

Senior Newbie





« Posted 2011-11-04 01:05:17 »

Hey everyone, I've just started getting into Swing and have encountered a weird problem. I'm trying to get a grid which will expand when left-clicked and retract when right-clicked. This works fine, but the positioning seems strange to me. I want the grid to start from the top-left corner, but it seems like there is some kind of invisible border there. Has anyone else seen this before? I'm sure I'm just making some newbie mistake Smiley

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
73  
74  
75  
76  
77  
78  
79  
80  
public class GridScroller extends JPanel implements MouseListener{
    public final static String PROG_NAME = "GridScroller";
    public JPanel drawingPane;
    public int clickCounter = 0;
   
    public GridScroller(){
        super(new BorderLayout());
        System.out.println(PROG_NAME + ": constructor entered");
       
        drawingPane = new DrawingPane();
        drawingPane.setBackground(Color.CYAN);
        drawingPane.addMouseListener(this);
       
        JScrollPane scroller = new JScrollPane(drawingPane);
        drawingPane.setLocation(0,0);
        scroller.setPreferredSize(new Dimension(600, 450));
        scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        add(scroller);
    }
   
    public class DrawingPane extends JPanel{
        protected void paintComponent(Graphics g){
            super.paintComponent(g);
           
            for(int i = 0; i < clickCounter; i++){
                for(int j = 0; j < clickCounter; j++){
                    g.setColor(Color.BLACK);
                    g.drawRect(20, 20, i * 20 + 0, j * 20 + 0);
                }
            }
        }
    }

    public void mouseReleased(MouseEvent e){
        //drawingPane.setPreferredSize(new Dimension(drawingPane.getWidth() + 50, drawingPane.getHeight() + 50));
        if(e.getButton() == MouseEvent.BUTTON1){
            clickCounter++;
        }
        if(e.getButton() == MouseEvent.BUTTON3){
            clickCounter--;
        }
       
        drawingPane.setPreferredSize(new Dimension((clickCounter + 2) * 20, (clickCounter + 2) * 20));
        drawingPane.repaint();
        drawingPane.revalidate();
        System.out.println("Mouse event captured");
    }
   
    public void mouseClicked(MouseEvent e){}
    public void mouseEntered(MouseEvent e){}
    public void mouseExited(MouseEvent e){}
    public void mousePressed(MouseEvent e){}
   
    public static void createAndShowGUI(){
        System.out.println(PROG_NAME + ": createAndShowGUI entered");
       
        JFrame frame = new JFrame("GridScroller");
        frame.setLayout(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        JComponent newContentPane = new GridScroller();
        newContentPane.setOpaque(true);
        frame.setContentPane(newContentPane);
        newContentPane.setLocation(0,0);
       
        frame.pack();
        frame.setVisible(true);
    }
   
    public static void main(String[] args){
        System.out.println(PROG_NAME + ": main entered");
       
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run(){
                createAndShowGUI();
            }
        });
    }
}
Offline ra4king

JGO Kernel


Medals: 350
Projects: 3
Exp: 5 years


I'm the King!


« Reply #1 - Posted 2011-11-04 01:43:53 »

You want the grid to start at (0,0)? If so, then you need to change the X and Y location of g.drawRect(...) to 0,0 instead of 20,20 Wink

Offline Onatoko

Senior Newbie





« Reply #2 - Posted 2011-11-04 01:53:37 »

How did I know it would be something stupid like that? lol I got the position and size parameters backwards... >.< thank you
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ra4king

JGO Kernel


Medals: 350
Projects: 3
Exp: 5 years


I'm the King!


« Reply #3 - Posted 2011-11-04 02:35:40 »

LOL, Glad to help Grin

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Longarmx (38 views)
2014-10-17 03:59:02

Norakomi (28 views)
2014-10-16 15:22:06

Norakomi (24 views)
2014-10-16 15:20:20

lcass (28 views)
2014-10-15 16:18:58

TehJavaDev (53 views)
2014-10-14 00:39:48

TehJavaDev (54 views)
2014-10-14 00:35:47

TehJavaDev (43 views)
2014-10-14 00:32:37

BurntPizza (64 views)
2014-10-11 23:24:42

BurntPizza (36 views)
2014-10-11 23:10:45

BurntPizza (78 views)
2014-10-11 22:30:10
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!