Java tutorial
import java.awt.Container; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.Spring; import javax.swing.SpringLayout; public class MainClass { public static void main(String[] args) { JFrame aWindow = new JFrame(); aWindow.setBounds(200, 200, 200, 200); aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container content = aWindow.getContentPane(); content.add(new SpringLayoutPanel()); aWindow.setVisible(true); } } class SpringLayoutPanel extends JPanel { public SpringLayoutPanel() { SpringLayout layout = new SpringLayout(); setLayout(layout); JButton[] buttons = new JButton[6]; for (int i = 0; i < buttons.length; i++) { buttons[i] = new JButton("Press " + (i + 1)); add(buttons[i]); } Spring xSpring = Spring.constant(5, 15, 25); Spring ySpring = Spring.constant(10, 30, 50); Spring wSpring = Spring.constant(30, 80, 130); SpringLayout.Constraints buttonConstr = layout.getConstraints(buttons[0]); buttonConstr.setX(xSpring); buttonConstr.setY(ySpring); for (int i = 0; i < buttons.length; i++) { buttonConstr = layout.getConstraints(buttons[i]); buttonConstr.setHeight(ySpring); buttonConstr.setWidth(wSpring); if (i > 0) { layout.putConstraint(SpringLayout.WEST, buttons[i], xSpring, SpringLayout.EAST, buttons[i - 1]); layout.putConstraint(SpringLayout.NORTH, buttons[i], ySpring, SpringLayout.SOUTH, buttons[i - 1]); } } SpringLayout.Constraints constr = layout.getConstraints(this); constr.setConstraint(SpringLayout.EAST, Spring.sum(buttonConstr.getConstraint(SpringLayout.EAST), Spring.constant(15))); constr.setConstraint(SpringLayout.SOUTH, Spring.sum(buttonConstr.getConstraint(SpringLayout.SOUTH), Spring.constant(10))); } }