1

I need to create a login interface that opens in full screen(working in all display resolutions) but with undecorated(true). I could create the expected jframe but how can i position swing components in the center of the jframe? here is what I need to get https://drive.google.com/file/d/0B3-1tpHz8_TGU1p3SlA2UGMxekk/edit?usp=sharing and this is adaptive to all screen sizes

Nadun Liyanage
  • 463
  • 3
  • 10
  • For this use BorderLayout and assign the alignment to CENTER of Swing components. – Girish K Mar 01 '14 at 10:12
  • @NadunLiyanage Totally unrelated to this question, you deleted your recent question before I could answer it. Set the container background to `null` to revert to inherited default. Sorry about hijacking this question. – Jason C Mar 03 '14 at 18:00
  • Thank you very much mr Jason...I did the same thing you said... it was working again thank you so much for your feedback.... and im sorry for the inconvenience caused... – Nadun Liyanage Mar 04 '14 at 14:34

3 Answers3

3

An undecorated frame is still a frame. In fact you could simply use a JWindow.

What this means is, decorated or otherwise, you can layout your components as per normal. Because your pushing for full screen, I might suggest using something like GridBagLayout as a bases, but that's me.

MadProgrammer
  • 343,457
  • 22
  • 230
  • 366
  • Thank you for your quick responses... Here Im new in java and I think that the question was not clear... Here is the thing I need to do. https://drive.google.com/file/d/0B3-1tpHz8_TGU1p3SlA2UGMxekk/edit?usp=sharing ![enter image description here][1] – Nadun Liyanage Mar 01 '14 at 10:33
  • Yes, and. This seems simple enough for GridBagLayout to a eve quite well – MadProgrammer Mar 01 '14 at 20:09
0

use the setBounds() method

setLayout(null);
setBounds(int x,int y,int width,int height);

setBounds() method will place the components in the desired position of the JFrame window.

Balayesu Chilakalapudi
  • 1,386
  • 3
  • 19
  • 43
  • 2
    In 15 years of professional Swing development, I never found a reason to use a null layout, a given the problems of font metrics, dpi and other rendering differences between platforms makes this a incredibly difficult and error prone solution - just saying – MadProgrammer Mar 01 '14 at 09:59
  • 1
    *"use the setBounds() method"* ..unless of course, you want a *reliable and robust* GUI. Java GUIs might have to work on a number of platforms, on different screen resolutions & using different PLAFs. As such they are not conducive to exact placement of components. To organize the components for a robust GUI, instead use layout managers, or [combinations of them](http://stackoverflow.com/a/5630271/418556), along with layout padding & borders for [white space](http://stackoverflow.com/q/17874717/418556). – Andrew Thompson Mar 01 '14 at 10:15
0

Use Border Layout,This layout will help you to assign components to center.

For example:`

Frame.add(GuiFieldsPanel, BorderLayout.CENTER);

Or

Frame.add(GuiButtonsPanel, BorderLayout.CENTER);        
Frame.setVisible(true);
Girish K
  • 758
  • 1
  • 13
  • 24
  • In your second line `GuiButtonsPanel` will replace `GuiFieldsPanel` at `BorderLayout.CENTER` position. `BorderLayout` can lay out just a single component in each location. – dic19 Mar 01 '14 at 16:00
  • NorderLayout will only allow a a single component to occupy any one of its 5 available positions, this means, you can't have to two components occupying the CENTER position – MadProgrammer Mar 01 '14 at 20:01
  • Ohh..sorry for mistake.i will correct the answer..thanks for suggestion. – Girish K Mar 02 '14 at 05:29