*/
import java.awt.BorderLayout;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
comparePopup = new PopupButton(compareButton);
unitBox = new JComboBox();
- Box south = Box.createHorizontalBox();
- south.add(Box.createHorizontalGlue());
- south.add(resetButton);
- south.add(Box.createHorizontalGlue());
- south.add(extractButton);
- south.add(Box.createHorizontalGlue());
- south.add(comparePopup);
- south.add(Box.createHorizontalGlue());
- south.add(unitBox);
- south.add(Box.createHorizontalGlue());
+ JPanel south = new JPanel(new GridBagLayout());
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.weightx = 1d;
+ gbc.weighty = 0d;
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.anchor = GridBagConstraints.CENTER;
+ south.add(resetButton, gbc); gbc.gridx++;
+ south.add(extractButton, gbc); gbc.gridx++;
+ south.add(comparePopup, gbc); gbc.gridx++;
+ south.add(unitBox, gbc);
setLayout(new BorderLayout());
add(south, BorderLayout.SOUTH);
* $Id$
*/
-import java.awt.BorderLayout;
-import java.awt.Dimension;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
private JButton button;
private JPopupMenu popup;
private JButton arrowButton;
- private Icon icon;
public PopupButton(JButton initButton){
- setLayout(new BorderLayout());
-
button = initButton;
- icon = new MetalComboBoxIcon();
- arrowButton = new JButton(icon);
+ arrowButton = new JButton(new MetalComboBoxIcon());
popup = new JPopupMenu();
- add(button, BorderLayout.CENTER);
- add(arrowButton, BorderLayout.EAST);
arrowButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
popup.show(PopupButton.this, p.x, button.getHeight());
}
});
+ Insets insets = arrowButton.getMargin();
+ arrowButton.setMargin(new Insets(insets.top, 1, insets.bottom, 1));
+
+ setLayout(new GridBagLayout());
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.weightx = 0d; gbc.weighty = 0d;
+ gbc.gridx = 0; gbc.gridy = 0;
+ gbc.fill = GridBagConstraints.BOTH;
+
+ add(button, gbc);
+
+ gbc.weightx = 0d;
+ gbc.gridx = 1;
+ add(arrowButton, gbc);
+
updateUI();
}
public JMenuItem addMenuItem(JMenuItem menuItem){
return popup.add(menuItem);
}
-
- public void updateUI(){
- super.updateUI();
- if(button != null){
- Dimension prefferedSize = button.getPreferredSize();
-
- arrowButton.setPreferredSize(new Dimension(icon.getIconWidth() + 4, prefferedSize.height));
- setPreferredSize(new Dimension(prefferedSize.width + icon.getIconWidth() + 4, prefferedSize.height));
-
- Dimension maxSize = button.getMaximumSize();
- arrowButton.setMaximumSize(new Dimension(icon.getIconWidth() + 4, maxSize.height));
- setMaximumSize(new Dimension(maxSize.width + icon.getIconWidth() + 4, maxSize.height));
-
- Dimension minSize = button.getMinimumSize();
- arrowButton.setMaximumSize(new Dimension(icon.getIconWidth() + 4, minSize.height));
- setMinimumSize(new Dimension(minSize.width + icon.getIconWidth() + 4, minSize.height));
-
- arrowButton.setSize(arrowButton.getPreferredSize());
- setSize(getPreferredSize());
- }
- }
}