Hallo
Ich möchte ein JPanel mit 7 Buttons nebeneinander haben. Das ist ja nicht wirklich schwer
Nun möchte ich aber, daß immer genau 1 Button "ausgewählt" ist. Das bedeutet, es wird mit einem Rahmen in einer anderen Farbe dargestellt.
Dieser Rahmen macht mir Probleme.
Wenn ich ihn zufüge ändern die Rechtecke nämlich ihre Größe - das darf nicht sein !
Falls jemand einen Tipp für mich hat ... ?
Code
public class JChannelPanel extends JPanel implements MouseListener {
private JButton button1;
private int chosenButton;
public JChannelPanel() {
super(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
this.setBackground(Color.BLACK);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets(1, 2, 1, 2);
button1 = new JButton("Button 1");
button1.setBackground(Color.blue);
button1.setForeground(Color.white);
selectButton(button1, 1);
button1.addMouseListener(this);
gbc.weightx = 0.5;
gbc.gridx = 0;
gbc.gridy = 0;
this.add(button1, gbc);
...
}
Alles anzeigen
Wenn man auf einen Button klickt wird er aktiviert über die Methode selectButton():
Code
private void selectButton(JButton b, int number) {
b.setBackground(Color.blue);
b.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED, Color.ORANGE, Color.orange));
switch (chosenButton) {
case 0:
// tue nix
break;
case 1:
if (number == 1) {
// tue nix
} else {
button1.setBorder(BorderFactory.createEmptyBorder());
}
break;
....
}
chosenButton = number;
}
Alles anzeigen
Die Vorgabe ist, daß der ausgewählte Button einen Rahmen erhält. Wenn ein anderer ausgewählt wird soll beim bisher gewählten der Rahmen wieder verschwinden.
Für Hinweise bin ich dankbar !
Gruß,
Benja