/** * Create a new tab to the FlexiBar, with the specified title and the specified component inside * the tab. * * @param title the title of the tab to be added * @param comp the component inserted in the tab */ public void add(String title, JComponent comp) { JButton button = new JButton(title); button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent arg0) { System.out.println("click"); setSelected((JButton) arg0.getSource()); } }); button.setMinimumSize(new Dimension(this.B_WIDTH, this.B_HEIGHT)); button.setMaximumSize(new Dimension(this.B_WIDTH, this.B_HEIGHT)); button.setPreferredSize(new Dimension(this.B_WIDTH, this.B_HEIGHT)); button.setAlignmentX(LEFT_ALIGNMENT); comp.setMinimumSize(new Dimension(this.P_WIDTH, this.P_HEIGHT)); comp.setMaximumSize(new Dimension(this.P_WIDTH, this.P_HEIGHT)); // comp.setPreferredSize(new Dimension(this.P_WIDTH,this.P_HEIGHT)); comp.setAlignmentX(LEFT_ALIGNMENT); if (currentSelected == -1) { comp.setVisible(true); currentSelected = 0; } else comp.setVisible(false); listComponent.add(button); listComponent.add(comp); panel.add(button); panel.add(comp); }
public static JComponent constrainHeight(JComponent component) { int preferredWidth = component.getPreferredSize().width; component.setPreferredSize(new Dimension(preferredWidth, s_maxButtonHeight)); component.setMaximumSize(new Dimension(2048, s_maxButtonHeight)); component.setMinimumSize(new Dimension(preferredWidth, s_maxButtonHeight)); return component; }
public static void sizeIt(JComponent c, int width, int height) { if (height < 0) { height = c.getPreferredSize().height; } Dimension myDimension = new Dimension(width, height); c.setMaximumSize(myDimension); c.setMinimumSize(myDimension); c.setPreferredSize(myDimension); }
@Override public void setMaximumSize(final Dimension DIM) { int width = DIM.width > 1920 ? 1920 : DIM.width; int height = DIM.height > 960 ? 960 : DIM.height; super.setMaximumSize(new Dimension(width, height)); calcInnerBounds(); init(getInnerBounds().width, getInnerBounds().height); invalidate(); repaint(); }
public static JComponent setSize(JComponent comp, int height, int width) { Dimension size = comp.getMaximumSize(); if (height != 0) { size.height = height; } else if (width != 0) { size.width = width; } comp.setMinimumSize(size); comp.setMaximumSize(size); comp.setPreferredSize(size); return comp; }
private JPanel createOutputComponent( ConsoleView console, JComponent progressLine, JComponent testOutput, StatisticsTableModel statisticsModel) { JPanel rightPanel = new JPanel(new GridBagLayout()); JComponent stackTraceActions = createActionsToolbar(console); stackTraceActions.setMaximumSize( new Dimension(rightPanel.getWidth(), stackTraceActions.getMaximumSize().height)); Splitter outputStatisticSplitter = new Splitter(false); initSplitterProportion(outputStatisticSplitter, 0.5f, "statistic"); outputStatisticSplitter.setFirstComponent(testOutput); JComponent statistics = createStatisticsComponent(statisticsModel); outputStatisticSplitter.setSecondComponent(statistics); GridBagConstraints c = new GridBagConstraints(); rightPanel.setBorder(null); c.fill = GridBagConstraints.VERTICAL; c.anchor = GridBagConstraints.LINE_START; c.gridx = 0; c.gridy = 1; c.weighty = 1; c.weightx = 0; rightPanel.add(stackTraceActions, c); c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 1; c.gridy = 0; c.weighty = 0; c.weightx = 1; rightPanel.add(progressLine, c); c.fill = GridBagConstraints.BOTH; c.gridx = 1; c.gridy = 1; c.weighty = 1; c.weightx = 1; rightPanel.add(outputStatisticSplitter, c); return rightPanel; }
private void setMaxHeightToPreferredHeight(JComponent component) { component.setMaximumSize( new Dimension( (int) component.getMaximumSize().getWidth(), (int) component.getPreferredSize().getHeight())); }
private void setComponentSize(JComponent component, int w, int h) { component.setMinimumSize(new Dimension(w, h)); component.setMaximumSize(new Dimension(w, h)); component.setPreferredSize(new Dimension(w, h)); component.setAlignmentX(Component.LEFT_ALIGNMENT); }
public static void setUnlimitedSize(JComponent component) { Dimension size = new Dimension(Short.MAX_VALUE, Short.MAX_VALUE); component.setMaximumSize(size); }
public void ellipsifyValues(int width) { int maxKeyWidth = 0; int[] maxAdditionalColumnsWidth = new int[additionalColumns]; for (JComponent keyComp : keyKeyComponentMap.values()) { maxKeyWidth = Math.max(maxKeyWidth, keyComp.getPreferredSize().width); } for (String k : keyValueComponentMap.keySet()) { for (int i = 0; i < additionalColumns; i++) { JComponent extraComp = getAdditionalColumn(k, i); if (extraComp != null) { maxAdditionalColumnsWidth[i] = Math.max(maxAdditionalColumnsWidth[i], extraComp.getPreferredSize().width); } } } width -= maxKeyWidth; for (int i : maxAdditionalColumnsWidth) { width -= i; } for (String k : keyValueComponentMap.keySet()) { JComponent comp = getComponent(k); if (comp != null) { int avail = width; /*for (int i = 0; i < additionalColumns; i++) { JComponent extraComp = getAdditionalColumn(k, i); if (extraComp != null) { avail -= extraComp.getPreferredSize().width; } }*/ if (comp instanceof JLabel) { while (avail < comp.getPreferredSize().width) { String text = ((JLabel) comp).getText(); if (text.endsWith("…")) { if (text.length() > 2) { // Already truncated. text = text.substring(0, text.length() - 2); } else { break; // As short as we can get. Can't truncate any more. } } else { // Reasonable first truncation is to trim off the last word. int spacePos = text.lastIndexOf(' '); if (spacePos > 0) { text = text.substring(0, spacePos); } else { FontMetrics fm = comp.getFontMetrics(comp.getFont()); while (fm.stringWidth(text + "…") > avail) { // causes StringIndexOutOfBoundsException if text is empty. if (text == null || text.length() < 2) { LOG.info("Text is null or empty in KeyValuePairPanel"); break; } text = text.substring(0, text.length() - 2); } // text = text + "…"; // text = text.substring(0, text.length() - 1); } } ((JLabel) comp).setText(text + "…"); } } else { // Can't truncate, but we can force the preferred size. comp.setMaximumSize(new Dimension(avail, comp.getPreferredSize().height)); } } } }
private void fixComponentSize(JComponent comp) { comp.setMaximumSize(comp.getPreferredSize()); }
/** * Create preview component. * * @param comboBox the options. * @return the component. */ private static Component createPreview(final JComboBox comboBox) { final JComponent preview; JLabel noPreview = new JLabel(GuiActivator.getResources().getI18NString("impl.media.configform.NO_PREVIEW")); noPreview.setHorizontalAlignment(SwingConstants.CENTER); noPreview.setVerticalAlignment(SwingConstants.CENTER); preview = createVideoContainer(noPreview); preview.setPreferredSize(new Dimension(WIDTH, 280)); preview.setMaximumSize(new Dimension(WIDTH, 280)); final ActionListener comboBoxListener = new ActionListener() { public void actionPerformed(ActionEvent event) { MediaDevice device = (MediaDevice) comboBox.getSelectedItem(); if ((device != null) && device.equals(videoDeviceInPreview)) return; Exception exception; try { createPreview(device, preview); exception = null; } catch (IOException ex) { exception = ex; } catch (MediaException ex) { exception = ex; } if (exception != null) { logger.error("Failed to create preview for device " + device, exception); device = null; } videoDeviceInPreview = device; } }; comboBox.addActionListener(comboBoxListener); /* * We have to initialize the controls to reflect the configuration * at the time of creating this instance. Additionally, because the * video preview will stop when it and its associated controls * become unnecessary, we have to restart it when the mentioned * controls become necessary again. We'll address the two goals * described by pretending there's a selection in the video combo * box when the combo box in question becomes displayable. */ comboBox.addHierarchyListener( new HierarchyListener() { public void hierarchyChanged(HierarchyEvent event) { if (((event.getChangeFlags() & HierarchyEvent.DISPLAYABILITY_CHANGED) != 0) && comboBox.isDisplayable()) { // let current changes end their execution // and after that trigger action on combobox SwingUtilities.invokeLater( new Runnable() { public void run() { comboBoxListener.actionPerformed(null); } }); } else { if (!comboBox.isDisplayable()) videoDeviceInPreview = null; } } }); return preview; }
public void installComponents(JFileChooser fc) { fc.setLayout(new BorderLayout(10, 10)); fc.setAlignmentX(JComponent.CENTER_ALIGNMENT); JPanel interior = new JPanel() { public Insets getInsets() { return insets; } }; align(interior); interior.setLayout(new BoxLayout(interior, BoxLayout.PAGE_AXIS)); fc.add(interior, BorderLayout.CENTER); // PENDING(jeff) - I18N JLabel l = new JLabel(pathLabelText); l.setDisplayedMnemonic(pathLabelMnemonic); align(l); interior.add(l); File currentDirectory = fc.getCurrentDirectory(); String curDirName = null; if (currentDirectory != null) { curDirName = currentDirectory.getPath(); } pathField = new JTextField(curDirName) { public Dimension getMaximumSize() { Dimension d = super.getMaximumSize(); d.height = getPreferredSize().height; return d; } }; l.setLabelFor(pathField); align(pathField); // Change to folder on return pathField.addActionListener(getUpdateAction()); interior.add(pathField); interior.add(Box.createRigidArea(vstrut10)); // CENTER: left, right accessory JPanel centerPanel = new JPanel(); centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.LINE_AXIS)); align(centerPanel); // left panel - Filter & folderList JPanel leftPanel = new JPanel(); leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.PAGE_AXIS)); align(leftPanel); // add the filter PENDING(jeff) - I18N l = new JLabel(filterLabelText); l.setDisplayedMnemonic(filterLabelMnemonic); align(l); leftPanel.add(l); filterComboBox = new JComboBox() { public Dimension getMaximumSize() { Dimension d = super.getMaximumSize(); d.height = getPreferredSize().height; return d; } }; l.setLabelFor(filterComboBox); filterComboBoxModel = createFilterComboBoxModel(); filterComboBox.setModel(filterComboBoxModel); filterComboBox.setRenderer(createFilterComboBoxRenderer()); fc.addPropertyChangeListener(filterComboBoxModel); align(filterComboBox); leftPanel.add(filterComboBox); // leftPanel.add(Box.createRigidArea(vstrut10)); // Add the Folder List PENDING(jeff) - I18N l = new JLabel(foldersLabelText); l.setDisplayedMnemonic(foldersLabelMnemonic); align(l); leftPanel.add(l); JScrollPane sp = createDirectoryList(); sp.getVerticalScrollBar().setFocusable(false); sp.getHorizontalScrollBar().setFocusable(false); l.setLabelFor(sp.getViewport().getView()); leftPanel.add(sp); // create files list JPanel rightPanel = new JPanel(); align(rightPanel); rightPanel.setLayout(new BoxLayout(rightPanel, BoxLayout.PAGE_AXIS)); l = new JLabel(filesLabelText); l.setDisplayedMnemonic(filesLabelMnemonic); align(l); rightPanel.add(l); sp = createFilesList(); l.setLabelFor(sp); rightPanel.add(sp); centerPanel.add(leftPanel); centerPanel.add(Box.createRigidArea(hstrut10)); centerPanel.add(rightPanel); JComponent accessoryPanel = getAccessoryPanel(); JComponent accessory = fc.getAccessory(); if (accessoryPanel != null) { if (accessory == null) { accessoryPanel.setPreferredSize(ZERO_ACC_SIZE); accessoryPanel.setMaximumSize(ZERO_ACC_SIZE); } else { getAccessoryPanel().add(accessory, BorderLayout.CENTER); accessoryPanel.setPreferredSize(PREF_ACC_SIZE); accessoryPanel.setMaximumSize(MAX_SIZE); } align(accessoryPanel); centerPanel.add(accessoryPanel); } interior.add(centerPanel); interior.add(Box.createRigidArea(vstrut10)); // add the filename field PENDING(jeff) - I18N l = new JLabel(enterFileNameLabelText); l.setDisplayedMnemonic(enterFileNameLabelMnemonic); align(l); interior.add(l); filenameTextField = new JTextField() { public Dimension getMaximumSize() { Dimension d = super.getMaximumSize(); d.height = getPreferredSize().height; return d; } }; l.setLabelFor(filenameTextField); filenameTextField.addActionListener(getApproveSelectionAction()); align(filenameTextField); filenameTextField.setAlignmentX(JComponent.LEFT_ALIGNMENT); interior.add(filenameTextField); bottomPanel = getBottomPanel(); bottomPanel.add(new JSeparator(), BorderLayout.NORTH); // Add buttons JPanel buttonPanel = new JPanel(); align(buttonPanel); buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.LINE_AXIS)); buttonPanel.add(Box.createGlue()); approveButton = new JButton(getApproveButtonText(fc)) { public Dimension getMaximumSize() { return new Dimension(MAX_SIZE.width, this.getPreferredSize().height); } }; approveButton.setMnemonic(getApproveButtonMnemonic(fc)); approveButton.setToolTipText(getApproveButtonToolTipText(fc)); align(approveButton); approveButton.setMargin(buttonMargin); approveButton.addActionListener(getApproveSelectionAction()); buttonPanel.add(approveButton); buttonPanel.add(Box.createGlue()); JButton updateButton = new JButton(updateButtonText) { public Dimension getMaximumSize() { return new Dimension(MAX_SIZE.width, this.getPreferredSize().height); } }; updateButton.setMnemonic(updateButtonMnemonic); updateButton.setToolTipText(updateButtonToolTipText); align(updateButton); updateButton.setMargin(buttonMargin); updateButton.addActionListener(getUpdateAction()); buttonPanel.add(updateButton); buttonPanel.add(Box.createGlue()); JButton cancelButton = new JButton(cancelButtonText) { public Dimension getMaximumSize() { return new Dimension(MAX_SIZE.width, this.getPreferredSize().height); } }; cancelButton.setMnemonic(cancelButtonMnemonic); cancelButton.setToolTipText(cancelButtonToolTipText); align(cancelButton); cancelButton.setMargin(buttonMargin); cancelButton.addActionListener(getCancelSelectionAction()); buttonPanel.add(cancelButton); buttonPanel.add(Box.createGlue()); JButton helpButton = new JButton(helpButtonText) { public Dimension getMaximumSize() { return new Dimension(MAX_SIZE.width, this.getPreferredSize().height); } }; helpButton.setMnemonic(helpButtonMnemonic); helpButton.setToolTipText(helpButtonToolTipText); align(helpButton); helpButton.setMargin(buttonMargin); helpButton.setEnabled(false); buttonPanel.add(helpButton); buttonPanel.add(Box.createGlue()); bottomPanel.add(buttonPanel, BorderLayout.SOUTH); if (fc.getControlButtonsAreShown()) { fc.add(bottomPanel, BorderLayout.SOUTH); } }