Code
private static JComponent createRightAlignButtonBox2(
List<JButton> list, final int buttonWidth, int gap) {
JComponent box = new JPanel() {
@Override public void updateUI() {
for (JButton b : list) {
b.setPreferredSize(null);
}
super.updateUI();
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
int maxHeight = list.stream()
.map(b -> b.getPreferredSize().height)
.reduce(0, Integer::max);
Dimension d = new Dimension(buttonWidth, maxHeight);
for (JButton b : list) {
b.setPreferredSize(d);
}
revalidate();
}
});
}
};
box.setLayout(new BoxLayout(box, BoxLayout.X_AXIS));
box.add(Box.createHorizontalGlue());
for (JButton b : list) {
box.add(b);
box.add(Box.createHorizontalStrut(gap));
}
box.setBorder(BorderFactory.createEmptyBorder(gap, 0, gap, 0));
return box;
}
References
No comments:
Post a Comment