I'm trying to make a JFrame with a usable content area of exactly 500x500. If I do this...
public MyFrame() {
super("Hello, world!");
setSize(500,500);
}
... I get a window whose full size is 500x500, including the title bar, etc., where I really need a window whose size is something like 504x520 to account for the window border and titlebar. How can I achieve this?
Using setSize() you can give the size of frame you want but if you use pack() , it will automatically change the size of the frames according to the size of components in it. It will not consider the size you have mentioned earlier. Try removing frame.
In Java 5 and later this is the easiest method: JFrame frame = new JFrame("Content Pane Size Example"); frame. getContentPane(). setPreferredSize(new Dimension(400, 300)); frame.
Change window Size of a JFrame To resize a frame, There is a method JFrame. setSize(int width, int height) which takes two parameters width and height.
setSize - Resizes this component so that it has width w and height h. The width and height values are automatically enlarged if either is less than the minimum size as specified by previous call to setMinimumSize. setMinimumSize - Sets the minimum size of this window to a constant value.
you may try couple of things: 1 - a hack:
public MyFrame(){
JFrame temp = new JFrame;
temp.pack();
Insets insets = temp.getInsets();
temp = null;
this.setSize(new Dimension(insets.left + insets.right + 500,
insets.top + insets.bottom + 500));
this.setVisible(true);
this.setResizable(false);
}
2- or Add a JPanel to the frame's content pane and Just set the preferred/minimum size of the JPanel to 500X500, call pack()
Never mind, I figured it out:
public MyFrame() {
super("Hello, world!");
myJPanel.setPreferredSize(new Dimension(500,500));
add(myJPanel);
pack();
}
Simply use:
public MyFrame() {
this.getContentPane().setPreferredSize(new Dimension(500, 500));
this.pack();
}
There's no need for a JPanel to be in there, if you just want to set the frame's size.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With