import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class SimpleExample extends JFrame {
public SimpleExample() {
setTitle("Simple example");
setSize(500, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton jb = new JButton("TEST");
jb.setBorderPainted(true);
jb.setBounds(5, 5, 1, 1); ---> This line
add(jb);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
SimpleExample ex = new SimpleExample();
ex.setVisible(true);
}
});
}
}
setBounds
Your frame is under the control of a layout manager. It is making the decisions on how to layout your components, and is overriding the values you have specified using setBounds
.
Modern GUI's need to run (even on the same OS) in a variety of different graphical environments, including different DPI; screen sizes; and font settings; for example.
The layout manager makes it possible for you to worry (less) about these issues and it is highly recommended that you make use of them
Take a look at
For more details