1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| public class SquareRadioButtons {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new GridBagLayout());
SquareRadioButton button1 = new SquareRadioButton("a");
SquareRadioButton button2 = new SquareRadioButton("b");
SquareRadioButton button3 = new SquareRadioButton("c");
ButtonGroup group = new ButtonGroup();
group.add(button1);
group.add(button2);
group.add(button3);
button1.setSelected(true);
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx=0;
gbc.gridy=GridBagConstraints.RELATIVE;
gbc.insets=new Insets(5, 5, 5, 5);
panel.add(button1,gbc);
panel.add(button2,gbc);
panel.add(button3,gbc);
button3.setEnabled(false);
frame.add(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
// implémentation partielle pour l'exemple
public static class SquareRadioButton extends AbstractButton {
private static final Icon ICON = createIcon();
private JToggleButton button=new JToggleButton();
private JLabel label = new JLabel();
public SquareRadioButton() {
setLayout(new FlowLayout(FlowLayout.LEADING, 5, 5));
add(button);
add(label);
button.setIcon(ICON);
button.setMargin(new Insets(0, 0, 0, 0));
}
public SquareRadioButton(String text) {
this();
setText(text);
}
@Override
public void setText(String text) {
super.setText(text);
label.setText(text);
}
@Override
public void setEnabled(boolean b) {
button.setEnabled(b);
}
@Override
public boolean isEnabled() {
return button.isEnabled();
}
@Override
public boolean isSelected() {
return button.isSelected();
}
@Override
public void setSelected(boolean b) {
button.setSelected(b);
}
@Override
public ButtonModel getModel() {
return button.getModel();
}
private static Icon createIcon() {
BufferedImage image = new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB);
return new ImageIcon(image);
}
}
} |
Partager