I need an help for positioning a JPanel in a specific position into a Jframe.
I have a JPanel in a class who extends JFrame, and I need to put this JPanel in a specific x,y position.
It's something like this:
public class Frame extends JFrame {
public Frame(){
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLocation(250, 250);
this.setSize(300,300);
this.setVisible(true);
JPanel panel = new JPanel();
this.add(panel);
panel.setLocation(150, 150);
panel.add(new JButton("Hello!")); // just to show JPanel
}//Frame()
}//Frame
I don't need a LayoutManager for the position of the JPanel, because I need to put that JPanel in a specific position (like 150,150 of the example). But if I do panel.setLocation(150,150) like in the code above, nothing happens, and JPanel remain in the north-centre of the frame (also if I change x,y number instead of 150,150).
And it shows like this:
http://i.imgur.com/Te3z0kv.png
Just call the method pack() after setting the ContentPane , ( java 1.7 , maybe older) like this: JFrame frame = new JFrame(); JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); .... frame. setContentPane(panel1); frame.
The most common JPanel constructor has no parameters. This creates a panel with the default layout (FlowLayout). Call setLayout() to change the layout. JPanel p = new JPanel(); p.
Of the frame's content panel, the layout manager by default is a BorderLayout (NWSE+C). Do:
this.getContentPanel().setLayout(null);
using setBounds(new Rectangle(96, 67, 98, 41)); you can do this... just see the example
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getLoginButton(), null);
}
return jContentPane;
}
}
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