The way that Java Swing UIs work is that for each JPanel there is always a LayoutManager that decides on where to exactly place your components. Each layout managers works differently, so if you use for example a BorderLayout, setBounds() is not used by the LayoutManager, instead component placement is decided by East,West,South,North,Center.
For the NullLayoutManager (in case you used new JPanel(null)
) however, each component has to have an x and y coordinate. Stupid Sidenote: if your UI would be three-dimensional there would also be a z coordinate.
So with public void Component.setBounds(int x, int y, int width, int height)
you specify where your component is placed and how many pixel it is wide and high.
Here's an example:
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class JTableInNullLayout
{
public static void main(String[] argv) throws Exception {
JPanel panel = new JPanel(null);
JLabel helloLabel = new JLabel("Hello world!");
helloLabel.setBounds( 10, 50, 60, 20 ); // x, y, width, height
panel.add(helloLabel);
JFrame frame = new JFrame();
frame.add(panel);
frame.setPreferredSize( new Dimension(200,200));
frame.pack();
frame.setVisible(true);
}
}