List of usage examples for javax.swing SpringLayout getConstraint
public Spring getConstraint(String edgeName, Component c)
From source file:Main.java
public static void main(String[] args) { SpringLayout layout = new SpringLayout(); JPanel p = new JPanel(layout); p.setBorder(BorderFactory.createLineBorder(Color.GREEN, 10)); JLabel l1 = new JLabel("label: width=90%", SwingConstants.CENTER); l1.setBorder(BorderFactory.createLineBorder(Color.RED, 1)); JButton l2 = new JButton("button: width=50%"); Spring panelw = layout.getConstraint(WIDTH, p); SpringLayout.Constraints c1 = layout.getConstraints(l1); c1.setX(Spring.constant(0));// w ww. jav a2 s . co m c1.setY(Spring.constant(20)); c1.setWidth(Spring.scale(panelw, 0.9f)); p.add(l1); SpringLayout.Constraints c2 = layout.getConstraints(l2); c2.setWidth(Spring.scale(panelw, 0.5f)); layout.putConstraint(SOUTH, l2, -20, SOUTH, p); layout.putConstraint(EAST, l2, -20, EAST, p); p.add(l2); JFrame f = new JFrame(); f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); f.getContentPane().add(p); f.setSize(320, 240); f.setVisible(true); }
From source file:CompassButtons.java
public CompassButtons(String terrain) { super("SpringLayout Compass Demo"); setSize(500, 300);/*from w ww.j a v a 2s . c o m*/ setDefaultCloseOperation(EXIT_ON_CLOSE); SpringLayout sl = new SpringLayout(); Container c = getContentPane(); c.setLayout(sl); int offset = 50; // gap between buttons and outside edge int w = 80; // width of buttons int h = 26; // height of buttons int border = 3; // border around viewport Spring offsetS = Spring.constant(offset); Spring borderS = Spring.constant(border); Spring widthS = Spring.constant(w); Spring halfWidthS = FractionSpring.half(widthS); Spring heightS = Spring.constant(h); Spring halfHeightS = FractionSpring.half(heightS); Spring leftEdgeS = sl.getConstraint(SpringLayout.WEST, c); Spring topEdgeS = sl.getConstraint(SpringLayout.NORTH, c); Spring rightEdgeS = sl.getConstraint(SpringLayout.EAST, c); Spring bottomEdgeS = sl.getConstraint(SpringLayout.SOUTH, c); Spring xCenterS = FractionSpring.half(rightEdgeS); Spring yCenterS = FractionSpring.half(bottomEdgeS); Spring leftBorder = Spring.sum(leftEdgeS, borderS); Spring topBorder = Spring.sum(topEdgeS, borderS); Spring northX = Spring.sum(xCenterS, Spring.minus(halfWidthS)); Spring southY = Spring.sum(bottomEdgeS, Spring.minus(Spring.sum(heightS, offsetS))); Spring eastX = Spring.sum(rightEdgeS, Spring.minus(Spring.sum(widthS, offsetS))); Spring eastY = Spring.sum(yCenterS, Spring.minus(halfHeightS)); c.add(nb, new SpringLayout.Constraints(northX, offsetS, widthS, heightS)); c.add(sb, new SpringLayout.Constraints(northX, southY, widthS, heightS)); c.add(wb); sl.getConstraints(wb).setX(offsetS); sl.getConstraints(wb).setY(eastY); sl.getConstraints(wb).setWidth(widthS); sl.getConstraints(wb).setHeight(heightS); c.add(eb); sl.getConstraints(eb).setX(eastX); sl.getConstraints(eb).setY(eastY); sl.getConstraints(eb).setWidth(widthS); sl.getConstraints(eb).setHeight(heightS); c.add(viewport); // this sets a bounds of (0,0,pref_width,pref_height) // The order here is important...need to have a valid width and height // in place before binding the (x,y) location sl.putConstraint(SpringLayout.SOUTH, viewport, Spring.minus(borderS), SpringLayout.SOUTH, c); sl.putConstraint(SpringLayout.EAST, viewport, Spring.minus(borderS), SpringLayout.EAST, c); sl.putConstraint(SpringLayout.NORTH, viewport, topBorder, SpringLayout.NORTH, c); sl.putConstraint(SpringLayout.WEST, viewport, leftBorder, SpringLayout.WEST, c); ImageIcon icon = new ImageIcon(getClass().getResource(terrain)); viewport.setView(new JLabel(icon)); // Hook up the buttons. See the CompassScroller class (on-line) for // details // on controlling the viewport. nb.setActionCommand(CompassScroller.NORTH); sb.setActionCommand(CompassScroller.SOUTH); wb.setActionCommand(CompassScroller.WEST); eb.setActionCommand(CompassScroller.EAST); CompassScroller scroller = new CompassScroller(viewport); nb.addActionListener(scroller); sb.addActionListener(scroller); eb.addActionListener(scroller); wb.addActionListener(scroller); setVisible(true); }