public TransferFrame() { prefs = new ASPPreferences(); setTitle("ASP seed data Transfer V" + serialVersionUID); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); // Create panel for channel list and file list movePanel = createMovePanel(); // Create panel for text fields entryPanel = createEntryPanel(); // Create panel for time span timeSpanPanel = createTimeSpanPanel(); // Status message box msgBox = new JTextArea(); // msgBox.setFont(new Font("Serif", Font.PLAIN, 16)); msgBox.setLineWrap(true); msgBox.setWrapStyleWord(true); msgBox.setEditable(false); scrollMsgBox = new JScrollPane(msgBox); scrollMsgBox.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scrollMsgBox.setPreferredSize(new Dimension(250, 250)); scrollMsgBox.setBorder( BorderFactory.createCompoundBorder( BorderFactory.createCompoundBorder( BorderFactory.createTitledBorder("Status display"), BorderFactory.createEmptyBorder(5, 5, 5, 5)), scrollMsgBox.getBorder())); // Build panel JPanel panel = new JPanel(); SpringLayout layout = new SpringLayout(); panel.setLayout(layout); Spring s = Spring.constant(0, 20, 10000); Spring s0 = Spring.constant(0, 0, 0); layout.putConstraint(SpringLayout.EAST, timeSpanPanel, s0, SpringLayout.EAST, panel); layout.putConstraint(SpringLayout.EAST, scrollMsgBox, s0, SpringLayout.EAST, panel); layout.putConstraint(SpringLayout.EAST, movePanel, s0, SpringLayout.EAST, panel); layout.putConstraint(SpringLayout.WEST, entryPanel, s0, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, movePanel, s0, SpringLayout.WEST, entryPanel); layout.putConstraint(SpringLayout.WEST, scrollMsgBox, s0, SpringLayout.WEST, movePanel); layout.putConstraint(SpringLayout.NORTH, movePanel, s, SpringLayout.NORTH, panel); layout.putConstraint(SpringLayout.NORTH, entryPanel, s, SpringLayout.SOUTH, movePanel); layout.putConstraint(SpringLayout.NORTH, timeSpanPanel, s0, SpringLayout.NORTH, entryPanel); layout.putConstraint(SpringLayout.NORTH, scrollMsgBox, s, SpringLayout.SOUTH, timeSpanPanel); layout.putConstraint(SpringLayout.SOUTH, panel, s, SpringLayout.SOUTH, scrollMsgBox); panel.add(movePanel); panel.add(entryPanel); panel.add(timeSpanPanel); panel.add(scrollMsgBox); getContentPane().add(panel); } // constructor TransferFrame()
protected JComponent createListPanel() { JPanel panel = new JPanel(new SpringLayout()); // Channel list window channelListModel = new DefaultListModel(); channelListBox = new JList(channelListModel); channelListBox.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); channelListBox.setLayoutOrientation(JList.VERTICAL); channelListBox.setVisibleRowCount(12); channelListBox.setPrototypeCellValue("00-BHZ 2008/01/01 00:00:00 2008/12/31 24:00:00 200000"); JScrollPane scrollChannelListBox = new JScrollPane(channelListBox); scrollChannelListBox.setName("Channel List"); scrollChannelListBox.setPreferredSize(new Dimension(350, 210)); scrollChannelListBox.setVisible(true); // ListAll button ActionListener listAction = this; listAllButton = new JButton("List All"); listAllButton.addActionListener(listAction); // ListFiltered button listFilteredButton = new JButton("List Filtered"); listFilteredButton.addActionListener(listAction); SpringLayout layout = (SpringLayout) panel.getLayout(); Spring s = Spring.constant(0, 20, 10000); Spring s0 = Spring.constant(0, 0, 0); layout.putConstraint(SpringLayout.WEST, listAllButton, s, SpringLayout.WEST, panel); layout.putConstraint( SpringLayout.WEST, scrollChannelListBox, s0, SpringLayout.WEST, listAllButton); layout.putConstraint( SpringLayout.EAST, listFilteredButton, s0, SpringLayout.EAST, scrollChannelListBox); layout.putConstraint(SpringLayout.EAST, panel, s, SpringLayout.EAST, listFilteredButton); layout.putConstraint(SpringLayout.NORTH, scrollChannelListBox, s, SpringLayout.NORTH, panel); layout.putConstraint( SpringLayout.NORTH, listAllButton, s, SpringLayout.SOUTH, scrollChannelListBox); layout.putConstraint( SpringLayout.NORTH, listFilteredButton, s0, SpringLayout.NORTH, listAllButton); layout.putConstraint(SpringLayout.SOUTH, panel, s, SpringLayout.SOUTH, listFilteredButton); layout.putConstraint(SpringLayout.SOUTH, panel, s, SpringLayout.SOUTH, listAllButton); panel.add(scrollChannelListBox); panel.add(listAllButton); panel.add(listFilteredButton); panel.setBorder( BorderFactory.createCompoundBorder( BorderFactory.createCompoundBorder( BorderFactory.createTitledBorder("Channel List"), BorderFactory.createEmptyBorder(5, 5, 5, 5)), panel.getBorder())); return panel; } // createListPanel()
/** * Aligns the widths of all columns and handles the spanned components. * * @param layout * @param grid * @param cols * @param rows * @param spannedComponents * @return */ private Spring alignColumns( SpringLayout layout, List<List<Component>> grid, int cols, int rows, Map<Component, int[]> spannedComponents) { // Align all cells in each column and make them the same width. Spring x = Spring.constant(this.leftMargin); Spring[] colWidths = new Spring[cols], colXs = new Spring[cols]; for (int c = 0; c < cols; c++) { colXs[c] = x; colWidths[c] = Spring.constant(0); for (int r = 0; r < rows; r++) { final Component cell = grid.get(r).get(c); if (cell != null && !spannedComponents.containsKey(cell)) colWidths[c] = Spring.max(colWidths[c], layout.getConstraints(cell).getWidth()); } for (int r = 0; r < rows; r++) { final Component cell = grid.get(r).get(c); if (cell != null && !spannedComponents.containsKey(cell)) { SpringLayout.Constraints constraints = layout.getConstraints(grid.get(r).get(c)); constraints.setX(x); constraints.setWidth(colWidths[c]); } } x = Spring.sum( x, Spring.sum( colWidths[c], Spring.constant(c == cols - 1 ? this.rightMargin : this.xPad))); } for (Entry<Component, int[]> spans : spannedComponents.entrySet()) { SpringLayout.Constraints constraints = layout.getConstraints(spans.getKey()); final int[] colRange = spans.getValue(); constraints.setX(colXs[colRange[0]]); Spring width = colWidths[colRange[0]]; for (int col = colRange[0] + 1; col <= colRange[1]; col++) width = Spring.sum(Spring.sum(width, colWidths[col]), Spring.constant(this.xPad)); constraints.setWidth(width); } return x; }
protected JComponent createMovePanel() { JPanel panel = new JPanel(new SpringLayout()); // List panel listPanel = createListPanel(); // Action panel actionPanel = createActionPanel(); // Set up local file system window to show transfered seed data localSeedFileFrame = new JFileChooser(); localSeedFileFrame.setCurrentDirectory(new File(prefs.GetLocalDir())); // This is a navigate and list only file frame localSeedFileFrame.setControlButtonsAreShown(false); localSeedFileFrame.getComponent(localSeedFileFrame.getComponentCount() - 1).setVisible(false); panel.add(listPanel); panel.add(actionPanel); panel.add(localSeedFileFrame); SpringLayout layout = (SpringLayout) panel.getLayout(); Spring s0 = Spring.constant(0, 0, 0); layout.putConstraint(SpringLayout.WEST, listPanel, s0, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, actionPanel, s0, SpringLayout.EAST, listPanel); layout.putConstraint(SpringLayout.WEST, localSeedFileFrame, s0, SpringLayout.EAST, actionPanel); layout.putConstraint(SpringLayout.EAST, panel, s0, SpringLayout.EAST, localSeedFileFrame); layout.putConstraint(SpringLayout.NORTH, localSeedFileFrame, s0, SpringLayout.NORTH, panel); layout.putConstraint( SpringLayout.NORTH, actionPanel, s0, SpringLayout.NORTH, localSeedFileFrame); layout.putConstraint(SpringLayout.NORTH, listPanel, s0, SpringLayout.NORTH, actionPanel); layout.putConstraint(SpringLayout.SOUTH, listPanel, s0, SpringLayout.SOUTH, actionPanel); layout.putConstraint( SpringLayout.SOUTH, actionPanel, s0, SpringLayout.SOUTH, localSeedFileFrame); layout.putConstraint(SpringLayout.SOUTH, panel, s0, SpringLayout.SOUTH, localSeedFileFrame); return panel; } // createMovePanel()
/** * Aligns the height of all cells in a row. * * @param layout * @param grid * @param cols * @param rows * @return */ private Spring alignRows(SpringLayout layout, List<List<Component>> grid, int cols, int rows) { // Align all cells in each row and make them the same height. Spring y = Spring.constant(this.topMargin); int[] rowSpacing = new int[rows]; Arrays.fill(rowSpacing, this.yPad); // no space above filler line rowSpacing[rows - 2] = 0; rowSpacing[rows - 1] = this.bottomMargin; for (int r = 0; r < rows; r++) { Spring height = Spring.constant(0); for (int c = 0; c < cols; c++) if (grid.get(r).get(c) != null) height = Spring.max(height, layout.getConstraints(grid.get(r).get(c)).getHeight()); for (int c = 0; c < cols; c++) if (grid.get(r).get(c) != null) { SpringLayout.Constraints constraints = layout.getConstraints(grid.get(r).get(c)); constraints.setY(y); constraints.setHeight(height); } y = Spring.sum(y, Spring.sum(height, Spring.constant(rowSpacing[r]))); } return y; }
/** * Aligns the first <code>rows</code> * <code>cols</code> components of <code>parent</code> in a * grid. Each component is as big as the maximum preferred width and height of the components. The * parent is made just big enough to fit them all. * * @param rows number of rows * @param cols number of columns * @param initialX x location to start the grid at * @param initialY y location to start the grid at * @param xPad x padding between cells * @param yPad y padding between cells */ public static void makeGrid( Container parent, int rows, int cols, int initialX, int initialY, int xPad, int yPad) { SpringLayout layout; try { layout = (SpringLayout) parent.getLayout(); } catch (ClassCastException exc) { System.err.println("The first argument to makeGrid must use SpringLayout."); return; } Spring xPadSpring = Spring.constant(xPad); Spring yPadSpring = Spring.constant(yPad); Spring initialXSpring = Spring.constant(initialX); Spring initialYSpring = Spring.constant(initialY); int max = rows * cols; // Calculate Springs that are the max of the width/height so that all // cells have the same size. Spring maxWidthSpring = layout.getConstraints(parent.getComponent(0)).getWidth(); Spring maxHeightSpring = layout.getConstraints(parent.getComponent(0)).getWidth(); for (int i = 1; i < max; i++) { SpringLayout.Constraints cons = layout.getConstraints(parent.getComponent(i)); maxWidthSpring = Spring.max(maxWidthSpring, cons.getWidth()); maxHeightSpring = Spring.max(maxHeightSpring, cons.getHeight()); } // Apply the new width/height Spring. This forces all the // components to have the same size. for (int i = 0; i < max; i++) { SpringLayout.Constraints cons = layout.getConstraints(parent.getComponent(i)); cons.setWidth(maxWidthSpring); cons.setHeight(maxHeightSpring); } // Then adjust the x/y constraints of all the cells so that they // are aligned in a grid. SpringLayout.Constraints lastCons = null; SpringLayout.Constraints lastRowCons = null; for (int i = 0; i < max; i++) { SpringLayout.Constraints cons = layout.getConstraints(parent.getComponent(i)); if (i % cols == 0) { // start of new row lastRowCons = lastCons; cons.setX(initialXSpring); } else { // x position depends on previous component cons.setX(Spring.sum(lastCons.getConstraint(SpringLayout.EAST), xPadSpring)); } if (i / cols == 0) { // first row cons.setY(initialYSpring); } else { // y position depends on previous row cons.setY(Spring.sum(lastRowCons.getConstraint(SpringLayout.SOUTH), yPadSpring)); } lastCons = cons; } // Set the parent's size. SpringLayout.Constraints pCons = layout.getConstraints(parent); pCons.setConstraint( SpringLayout.SOUTH, Spring.sum(Spring.constant(yPad), lastCons.getConstraint(SpringLayout.SOUTH))); pCons.setConstraint( SpringLayout.EAST, Spring.sum(Spring.constant(xPad), lastCons.getConstraint(SpringLayout.EAST))); }
/** * Aligns the first <code>rows</code> * <code>cols</code> components of <code>parent</code> in a * grid. Each component in a column is as wide as the maximum preferred width of the components in * that column; height is similarly determined for each row. The parent is made just big enough to * fit them all. * * @param rows number of rows * @param cols number of columns * @param initialX x location to start the grid at * @param initialY y location to start the grid at * @param xPad x padding between cells * @param yPad y padding between cells */ public static void makeCompactGrid( Container parent, int rows, int cols, int initialX, int initialY, int xPad, int yPad) { SpringLayout layout; try { layout = (SpringLayout) parent.getLayout(); } catch (ClassCastException exc) { System.err.println("The first argument to makeCompactGrid must use SpringLayout."); return; } // Align all cells in each column and make them the same width. Spring x = Spring.constant(initialX); for (int c = 0; c < cols; c++) { Spring width = Spring.constant(0); for (int r = 0; r < rows; r++) { width = Spring.max(width, getConstraintsForCell(r, c, parent, cols).getWidth()); } for (int r = 0; r < rows; r++) { SpringLayout.Constraints constraints = getConstraintsForCell(r, c, parent, cols); constraints.setX(x); constraints.setWidth(width); } x = Spring.sum(x, Spring.sum(width, Spring.constant(xPad))); } // Align all cells in each row and make them the same height. Spring y = Spring.constant(initialY); for (int r = 0; r < rows; r++) { Spring height = Spring.constant(0); for (int c = 0; c < cols; c++) { height = Spring.max(height, getConstraintsForCell(r, c, parent, cols).getHeight()); } for (int c = 0; c < cols; c++) { SpringLayout.Constraints constraints = getConstraintsForCell(r, c, parent, cols); constraints.setY(y); constraints.setHeight(height); } y = Spring.sum(y, Spring.sum(height, Spring.constant(yPad))); } // Set the parent's size. SpringLayout.Constraints pCons = layout.getConstraints(parent); pCons.setConstraint(SpringLayout.SOUTH, y); pCons.setConstraint(SpringLayout.EAST, x); }
private void setupGui() { setIconImage( Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/image/logo_ftb.png"))); setTitle(I18N.getLocaleString("FILTER_TITLE")); setResizable(false); Container panel = getContentPane(); SpringLayout layout = new SpringLayout(); panel.setLayout(layout); originLbl = new JLabel(I18N.getLocaleString("FILTER_ORIGIN")); availabilityLbl = new JLabel(I18N.getLocaleString("FILTER_MODPACKAVALIABILITY")); mcVersionLbl = new JLabel(I18N.getLocaleString("FILTER_MCVERSION")); origin = new JComboBox(); mcVersion = new JComboBox(); availability = new JComboBox(); apply = new JButton(I18N.getLocaleString("FILTER_APPLY")); cancel = new JButton(I18N.getLocaleString("MAIN_CANCEL")); search = new JButton(I18N.getLocaleString("FILTER_SEARCHPACK")); origin.setPrototypeDisplayValue("xxxxxxxxxxxx"); mcVersion.setPrototypeDisplayValue("xxxxxxxxxxxx"); availability.setPrototypeDisplayValue("xxxxxxxxxxxx"); panel.add(mcVersionLbl); panel.add(mcVersion); panel.add(originLbl); panel.add(origin); panel.add(availability); panel.add(availabilityLbl); panel.add(apply); panel.add(cancel); panel.add(search); Spring hSpring; Spring columnWidth; hSpring = Spring.constant(10); layout.putConstraint(SpringLayout.WEST, mcVersionLbl, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, originLbl, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, availabilityLbl, hSpring, SpringLayout.WEST, panel); columnWidth = Spring.width(mcVersionLbl); columnWidth = Spring.max(columnWidth, Spring.width(originLbl)); columnWidth = Spring.max(columnWidth, Spring.width(availabilityLbl)); hSpring = Spring.sum(hSpring, columnWidth); hSpring = Spring.sum(hSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.WEST, mcVersion, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, origin, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, availability, hSpring, SpringLayout.WEST, panel); columnWidth = Spring.width(mcVersion); columnWidth = Spring.max(columnWidth, Spring.width(origin)); columnWidth = Spring.max(columnWidth, Spring.width(availability)); hSpring = Spring.sum(hSpring, columnWidth); layout.putConstraint(SpringLayout.EAST, mcVersion, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, origin, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, availability, hSpring, SpringLayout.WEST, panel); hSpring = Spring.sum(hSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.EAST, panel, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, search, 10, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, search, -5, SpringLayout.HORIZONTAL_CENTER, panel); layout.putConstraint(SpringLayout.WEST, cancel, 5, SpringLayout.HORIZONTAL_CENTER, panel); layout.putConstraint(SpringLayout.EAST, cancel, -10, SpringLayout.EAST, panel); layout.putConstraint(SpringLayout.WEST, apply, 10, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, apply, -10, SpringLayout.EAST, panel); Spring vSpring; Spring rowHeight; vSpring = Spring.constant(10); layout.putConstraint(SpringLayout.BASELINE, mcVersionLbl, 0, SpringLayout.BASELINE, mcVersion); layout.putConstraint(SpringLayout.NORTH, mcVersion, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.height(mcVersionLbl); rowHeight = Spring.max(rowHeight, Spring.height(mcVersion)); vSpring = Spring.sum(vSpring, rowHeight); vSpring = Spring.sum(vSpring, Spring.constant(5)); layout.putConstraint(SpringLayout.BASELINE, originLbl, 0, SpringLayout.BASELINE, origin); layout.putConstraint(SpringLayout.NORTH, origin, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.height(originLbl); rowHeight = Spring.max(rowHeight, Spring.height(origin)); vSpring = Spring.sum(vSpring, rowHeight); vSpring = Spring.sum(vSpring, Spring.constant(5)); layout.putConstraint( SpringLayout.BASELINE, availabilityLbl, 0, SpringLayout.BASELINE, availability); layout.putConstraint(SpringLayout.NORTH, availability, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.height(availabilityLbl); rowHeight = Spring.max(rowHeight, Spring.height(availability)); vSpring = Spring.sum(vSpring, rowHeight); vSpring = Spring.sum(vSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.NORTH, search, vSpring, SpringLayout.NORTH, panel); layout.putConstraint(SpringLayout.NORTH, cancel, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.height(search); rowHeight = Spring.max(rowHeight, Spring.height(cancel)); vSpring = Spring.sum(vSpring, rowHeight); vSpring = Spring.sum(vSpring, Spring.constant(5)); layout.putConstraint(SpringLayout.NORTH, apply, vSpring, SpringLayout.NORTH, panel); vSpring = Spring.sum(vSpring, Spring.height(apply)); vSpring = Spring.sum(vSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.SOUTH, panel, vSpring, SpringLayout.NORTH, panel); pack(); setLocationRelativeTo(this.getOwner()); }
private void setupGui() { setIconImage( Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/image/logo_ftb.png"))); setTitle(I18N.getLocaleString("FILTER_TITLE")); setResizable(false); Container panel = getContentPane(); SpringLayout layout = new SpringLayout(); panel.setLayout(layout); originLbl = new JLabel(I18N.getLocaleString("FILTER_ORIGIN")); typeLbl = new JLabel(I18N.getLocaleString("FILTER_PACKTYPE")); compatiblePackLbl = new JLabel(I18N.getLocaleString("FILTER_COMPERTIBLEPACK")); origin = new JComboBox(); type = new JComboBox(); compatiblePack = new JComboBox(); apply = new JButton(I18N.getLocaleString("FILTER_APPLY")); cancel = new JButton(I18N.getLocaleString("MAIN_CANCEL")); search = new JButton(I18N.getLocaleString("FILTER_SEARCHMAP")); origin.setPrototypeDisplayValue("xxxxxxxxxxxxxxxxxxxxxxxxxx"); type.setPrototypeDisplayValue("xxxxxxxxxxxxxxxxxxxxxxxxxx"); compatiblePack.setPrototypeDisplayValue("xxxxxxxxxxxxxxxxxxxxxxxxxx"); panel.add(typeLbl); panel.add(type); panel.add(originLbl); panel.add(origin); panel.add(compatiblePackLbl); panel.add(compatiblePack); panel.add(apply); panel.add(cancel); panel.add(search); Spring hSpring; Spring columnWidth; hSpring = Spring.constant(10); layout.putConstraint(SpringLayout.WEST, typeLbl, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, originLbl, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, compatiblePackLbl, hSpring, SpringLayout.WEST, panel); columnWidth = SwingUtils.springMax( Spring.width(typeLbl), Spring.width(originLbl), Spring.width(compatiblePackLbl)); hSpring = SwingUtils.springSum(hSpring, columnWidth, Spring.constant(10)); layout.putConstraint(SpringLayout.WEST, type, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, origin, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, compatiblePack, hSpring, SpringLayout.WEST, panel); columnWidth = SwingUtils.springMax( Spring.width(type), Spring.width(origin), Spring.width(compatiblePack)); hSpring = Spring.sum(hSpring, columnWidth); layout.putConstraint(SpringLayout.EAST, type, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, origin, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, compatiblePack, hSpring, SpringLayout.WEST, panel); hSpring = Spring.sum(hSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.EAST, panel, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, search, 10, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, search, -5, SpringLayout.HORIZONTAL_CENTER, panel); layout.putConstraint(SpringLayout.WEST, cancel, 5, SpringLayout.HORIZONTAL_CENTER, panel); layout.putConstraint(SpringLayout.EAST, cancel, -10, SpringLayout.EAST, panel); layout.putConstraint(SpringLayout.WEST, apply, 10, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, apply, -10, SpringLayout.EAST, panel); Spring vSpring; Spring rowHeight; vSpring = Spring.constant(10); layout.putConstraint(SpringLayout.BASELINE, typeLbl, 0, SpringLayout.BASELINE, type); layout.putConstraint(SpringLayout.NORTH, type, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.max(Spring.height(typeLbl), Spring.height(type)); vSpring = SwingUtils.springSum(vSpring, rowHeight, Spring.constant(5)); layout.putConstraint(SpringLayout.BASELINE, originLbl, 0, SpringLayout.BASELINE, origin); layout.putConstraint(SpringLayout.NORTH, origin, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.max(Spring.height(originLbl), Spring.height(origin)); vSpring = SwingUtils.springSum(vSpring, rowHeight, Spring.constant(5)); layout.putConstraint( SpringLayout.BASELINE, compatiblePackLbl, 0, SpringLayout.BASELINE, compatiblePack); layout.putConstraint(SpringLayout.NORTH, compatiblePack, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.height(compatiblePackLbl); rowHeight = Spring.max(rowHeight, Spring.height(compatiblePack)); vSpring = SwingUtils.springSum(vSpring, rowHeight, Spring.constant(10)); layout.putConstraint(SpringLayout.NORTH, search, vSpring, SpringLayout.NORTH, panel); layout.putConstraint(SpringLayout.NORTH, cancel, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.max(Spring.height(search), Spring.height(cancel)); vSpring = SwingUtils.springSum(vSpring, rowHeight, Spring.constant(5)); layout.putConstraint(SpringLayout.NORTH, apply, vSpring, SpringLayout.NORTH, panel); vSpring = SwingUtils.springSum(vSpring, Spring.height(apply), Spring.constant(10)); layout.putConstraint(SpringLayout.SOUTH, panel, vSpring, SpringLayout.NORTH, panel); pack(); setLocationRelativeTo(this.getOwner()); }
public static void makeGrid( Container parent, int rows, int cols, int initialX, int initialY, int xPad, int yPad) { SpringLayout layout; try { layout = (SpringLayout) parent.getLayout(); } catch (ClassCastException exc) { System.err.println("The first argument to makeGrid must use SpringLayout."); return; } Spring xPadSpring = Spring.constant(xPad); Spring yPadSpring = Spring.constant(yPad); Spring initialXSpring = Spring.constant(initialX); Spring initialYSpring = Spring.constant(initialY); int max = rows * cols; Spring maxWidthSpring = layout.getConstraints(parent.getComponent(0)).getWidth(); Spring maxHeightSpring = layout.getConstraints(parent.getComponent(0)).getWidth(); for (int i = 1; i < max; i++) { SpringLayout.Constraints cons = layout.getConstraints(parent.getComponent(i)); maxWidthSpring = Spring.max(maxWidthSpring, cons.getWidth()); maxHeightSpring = Spring.max(maxHeightSpring, cons.getHeight()); } for (int i = 0; i < max; i++) { SpringLayout.Constraints cons = layout.getConstraints(parent.getComponent(i)); cons.setWidth(maxWidthSpring); cons.setHeight(maxHeightSpring); } SpringLayout.Constraints lastCons = null; SpringLayout.Constraints lastRowCons = null; for (int i = 0; i < max; i++) { SpringLayout.Constraints cons = layout.getConstraints(parent.getComponent(i)); if (i % cols == 0) { lastRowCons = lastCons; cons.setX(initialXSpring); } else { cons.setX(Spring.sum(lastCons.getConstraint(SpringLayout.EAST), xPadSpring)); } if (i / cols == 0) { cons.setY(initialYSpring); } else { cons.setY(Spring.sum(lastRowCons.getConstraint(SpringLayout.SOUTH), yPadSpring)); } lastCons = cons; } SpringLayout.Constraints pCons = layout.getConstraints(parent); pCons.setConstraint( SpringLayout.SOUTH, Spring.sum(Spring.constant(yPad), lastCons.getConstraint(SpringLayout.SOUTH))); pCons.setConstraint( SpringLayout.EAST, Spring.sum(Spring.constant(xPad), lastCons.getConstraint(SpringLayout.EAST))); }
private void setupGui() { setIconImage( Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/image/logo_ftb.png"))); setTitle(I18N.getLocaleString("UPDATEMODPACK_TITLE")); setResizable(false); Container panel = getContentPane(); SpringLayout layout = new SpringLayout(); panel.setLayout(layout); messageLbl = new JLabel(I18N.getLocaleString("UPDATEMODPACK_ISAVALIBLE")); updateLbl = new JLabel(I18N.getLocaleString("UPDATE_WICHUPDATE")); backup = new JCheckBox(I18N.getLocaleString("UPDATEMODPACK_BACKUP")); update = new JButton(I18N.getLocaleString("MAIN_YES")); abort = new JButton(I18N.getLocaleString("MAIN_NO")); messageLbl.setHorizontalAlignment(SwingConstants.CENTER); updateLbl.setHorizontalAlignment(SwingConstants.CENTER); backup.setHorizontalAlignment(SwingConstants.CENTER); panel.add(messageLbl); panel.add(updateLbl); panel.add(backup); panel.add(update); panel.add(abort); Spring hSpring; Spring columnWidth; hSpring = Spring.constant(10); layout.putConstraint(SpringLayout.WEST, messageLbl, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, updateLbl, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, backup, hSpring, SpringLayout.WEST, panel); columnWidth = Spring.width(messageLbl); columnWidth = Spring.max(columnWidth, Spring.width(updateLbl)); columnWidth = Spring.max(columnWidth, Spring.width(backup)); hSpring = Spring.sum(hSpring, columnWidth); layout.putConstraint(SpringLayout.EAST, messageLbl, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, updateLbl, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, backup, hSpring, SpringLayout.WEST, panel); hSpring = Spring.sum(hSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.EAST, panel, hSpring, SpringLayout.WEST, panel); layout.putConstraint( SpringLayout.HORIZONTAL_CENTER, backup, 0, SpringLayout.HORIZONTAL_CENTER, panel); layout.putConstraint(SpringLayout.EAST, update, -5, SpringLayout.HORIZONTAL_CENTER, panel); layout.putConstraint(SpringLayout.WEST, abort, 5, SpringLayout.HORIZONTAL_CENTER, panel); Spring vSpring; Spring rowHeight; vSpring = Spring.constant(10); layout.putConstraint(SpringLayout.NORTH, messageLbl, vSpring, SpringLayout.NORTH, panel); vSpring = Spring.sum(vSpring, Spring.height(messageLbl)); vSpring = Spring.sum(vSpring, Spring.constant(5)); layout.putConstraint(SpringLayout.NORTH, updateLbl, vSpring, SpringLayout.NORTH, panel); vSpring = Spring.sum(vSpring, Spring.height(updateLbl)); vSpring = Spring.sum(vSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.NORTH, backup, vSpring, SpringLayout.NORTH, panel); vSpring = Spring.sum(vSpring, Spring.height(backup)); vSpring = Spring.sum(vSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.NORTH, update, vSpring, SpringLayout.NORTH, panel); layout.putConstraint(SpringLayout.NORTH, abort, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.height(update); rowHeight = Spring.max(rowHeight, Spring.height(abort)); vSpring = Spring.sum(vSpring, rowHeight); vSpring = Spring.sum(vSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.SOUTH, panel, vSpring, SpringLayout.NORTH, panel); pack(); setLocationRelativeTo(getOwner()); }
protected JComponent createActionPanel() { JPanel panel = new JPanel(new SpringLayout()); ActionListener buttonAction = this; // Transfer button transferButton = new JButton("Transfer "); transferButton.addActionListener(buttonAction); // Cancel button cancelButton = new JButton("Cancel"); cancelButton.addActionListener(buttonAction); // Quit button quitButton = new JButton("Quit"); quitButton.addActionListener(buttonAction); // Extended filename format checkbox extendFilenameCheckBox = new JCheckBox("Old names"); extendFilenameCheckBox.setSelected(prefs.GetExtendFilename() == 0); extendFilenameCheckBox.addActionListener(buttonAction); panel.add(quitButton); panel.add(cancelButton); panel.add(extendFilenameCheckBox); panel.add(transferButton); SpringLayout layout = (SpringLayout) panel.getLayout(); // Set button width to max of all items Spring maxWidthSpring = layout.getConstraints(quitButton).getWidth(); maxWidthSpring = Spring.max(maxWidthSpring, layout.getConstraints(cancelButton).getWidth()); maxWidthSpring = Spring.max(maxWidthSpring, layout.getConstraints(extendFilenameCheckBox).getWidth()); maxWidthSpring = Spring.max(maxWidthSpring, layout.getConstraints(transferButton).getWidth()); layout.getConstraints(quitButton).setWidth(maxWidthSpring); layout.getConstraints(cancelButton).setWidth(maxWidthSpring); layout.getConstraints(extendFilenameCheckBox).setWidth(maxWidthSpring); layout.getConstraints(transferButton).setWidth(maxWidthSpring); // Now link up the buttons Spring s = Spring.constant(8, 20, 20); Spring s0 = Spring.constant(0, 0, 0); Spring s1 = Spring.constant(10, 40, 40); layout.putConstraint(SpringLayout.NORTH, quitButton, s1, SpringLayout.NORTH, panel); layout.putConstraint(SpringLayout.NORTH, cancelButton, s1, SpringLayout.SOUTH, quitButton); layout.putConstraint( SpringLayout.NORTH, extendFilenameCheckBox, s1, SpringLayout.SOUTH, cancelButton); layout.putConstraint( SpringLayout.NORTH, transferButton, s1, SpringLayout.SOUTH, extendFilenameCheckBox); layout.putConstraint(SpringLayout.SOUTH, panel, s1, SpringLayout.SOUTH, transferButton); layout.putConstraint(SpringLayout.EAST, quitButton, s0, SpringLayout.EAST, transferButton); layout.putConstraint(SpringLayout.EAST, cancelButton, s0, SpringLayout.EAST, quitButton); layout.putConstraint( SpringLayout.EAST, extendFilenameCheckBox, s0, SpringLayout.EAST, cancelButton); layout.putConstraint(SpringLayout.EAST, panel, s0, SpringLayout.EAST, extendFilenameCheckBox); layout.putConstraint(SpringLayout.WEST, transferButton, s0, SpringLayout.WEST, quitButton); layout.putConstraint(SpringLayout.WEST, quitButton, s0, SpringLayout.WEST, cancelButton); layout.putConstraint( SpringLayout.WEST, cancelButton, s0, SpringLayout.WEST, extendFilenameCheckBox); layout.putConstraint(SpringLayout.WEST, extendFilenameCheckBox, s, SpringLayout.WEST, panel); return panel; } // createActionPanel()
private void setupGui() { setIconImage( Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/image/logo_ftb.png"))); setTitle(I18N.getLocaleString("PROFILEADDER_TITLE")); setResizable(false); Container panel = getContentPane(); SpringLayout layout = new SpringLayout(); panel.setLayout(layout); usernameLbl = new JLabel(I18N.getLocaleString("PROFILEADDER_USERNAME")); username = new JTextField(16); passwordLbl = new JLabel(I18N.getLocaleString("PROFILEADDER_PASSWORD")); password = new JPasswordField(16); nameLbl = new JLabel(I18N.getLocaleString("PROFILEADDER_NAME")); name = new JTextField(16); savePassword = new JCheckBox(I18N.getLocaleString("PROFILEADDER_SAVEPASSWORD")); add = new JButton(I18N.getLocaleString("MAIN_ADD")); usernameLbl.setLabelFor(username); passwordLbl.setLabelFor(password); nameLbl.setLabelFor(name); panel.add(usernameLbl); panel.add(username); panel.add(passwordLbl); panel.add(password); panel.add(nameLbl); panel.add(name); panel.add(savePassword); panel.add(add); Spring hSpring; Spring columnWidth; hSpring = Spring.constant(10); layout.putConstraint(SpringLayout.WEST, usernameLbl, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, passwordLbl, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, nameLbl, hSpring, SpringLayout.WEST, panel); columnWidth = Spring.width(usernameLbl); columnWidth = Spring.max(columnWidth, Spring.width(passwordLbl)); columnWidth = Spring.max(columnWidth, Spring.width(nameLbl)); hSpring = Spring.sum(hSpring, columnWidth); hSpring = Spring.sum(hSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.WEST, username, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, password, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, name, hSpring, SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.WEST, savePassword, hSpring, SpringLayout.WEST, panel); columnWidth = Spring.width(username); columnWidth = Spring.max(columnWidth, Spring.width(password)); columnWidth = Spring.max(columnWidth, Spring.width(name)); columnWidth = Spring.max(columnWidth, Spring.width(savePassword)); hSpring = Spring.sum(hSpring, columnWidth); hSpring = Spring.sum(hSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.EAST, panel, hSpring, SpringLayout.WEST, panel); layout.putConstraint( SpringLayout.HORIZONTAL_CENTER, add, 0, SpringLayout.HORIZONTAL_CENTER, panel); Spring vSpring; Spring rowHeight; vSpring = Spring.constant(10); layout.putConstraint(SpringLayout.BASELINE, usernameLbl, 0, SpringLayout.BASELINE, username); layout.putConstraint(SpringLayout.NORTH, username, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.height(usernameLbl); rowHeight = Spring.max(rowHeight, Spring.height(username)); vSpring = Spring.sum(vSpring, rowHeight); vSpring = Spring.sum(vSpring, Spring.constant(5)); layout.putConstraint(SpringLayout.BASELINE, passwordLbl, 0, SpringLayout.BASELINE, password); layout.putConstraint(SpringLayout.NORTH, password, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.height(passwordLbl); rowHeight = Spring.max(rowHeight, Spring.height(password)); vSpring = Spring.sum(vSpring, rowHeight); vSpring = Spring.sum(vSpring, Spring.constant(5)); layout.putConstraint(SpringLayout.BASELINE, nameLbl, 0, SpringLayout.BASELINE, name); layout.putConstraint(SpringLayout.NORTH, name, vSpring, SpringLayout.NORTH, panel); rowHeight = Spring.height(nameLbl); rowHeight = Spring.max(rowHeight, Spring.height(name)); vSpring = Spring.sum(vSpring, rowHeight); vSpring = Spring.sum(vSpring, Spring.constant(5)); layout.putConstraint(SpringLayout.NORTH, savePassword, vSpring, SpringLayout.NORTH, panel); vSpring = Spring.sum(vSpring, Spring.height(savePassword)); vSpring = Spring.sum(vSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.NORTH, add, vSpring, SpringLayout.NORTH, panel); vSpring = Spring.sum(vSpring, Spring.height(add)); vSpring = Spring.sum(vSpring, Spring.constant(10)); layout.putConstraint(SpringLayout.SOUTH, panel, vSpring, SpringLayout.NORTH, panel); pack(); setLocationRelativeTo(getOwner()); }