Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Centering Window

 
Sean Keane
Ranch Hand
Posts: 582
Chrome Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In order to center my JFrame or JDialog I created a getCenterScreen method that you can pass a Window object into and it will give you the center point. But I am wondering is this the best approach to go with?

This works. But the reason I ask is that this article here suggests centering a window simply by passing null into the setLocationRelativeTo method e.g.

Which approach would be most widely used? Is the second approach a bit of a hack?
 
Darryl Burke
Bartender
Posts: 5125
11
Java Netbeans IDE Opera
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Which approach would be most widely used?

The one which entails writing less code.

Is the second approach a bit of a hack?

Why not go through the source of Window#setLocationRelativeTo(Component c) and decide for yourself?
 
Rob Spoor
Sheriff
Pie
Posts: 20511
54
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The second approach is definitely not a hack - it's documented behaviour:
If the component is not currently showing, or c is null, the window is placed at the center of the screen. The center point can be determined with GraphicsEnvironment.getCenterPoint.

I used to do it the hard way, but these days I always use setLocationRelativeTo(null).

Also, the latter has one advantage - it ignores the not-usable part of the screen, like the task bar. It doesn't use the entire screen size through Toolkit.getScreenSize() but uses GraphicsEnvironment.getMaximumWindowBounds().
 
Sean Keane
Ranch Hand
Posts: 582
Chrome Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks guys. I think I will go with the second approach so!
 
Nam Ha
Ranch Hand
Posts: 50
Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks guys for this useful tip.
I used to write the complex code, and I switch to the dead simple tommorow
 
Randall Twede
Ranch Hand
Posts: 4369
3
Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
i used to do it much like the first approach.

i also like the second approach better. much simpler and ignores the task bar.
i would just be sure to comment the line.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic