У меня есть 5 JButtons: b1, b2, b3, b4, b5. По умолчанию их цвет серый. Когда я нажимаю на любую кнопку, фон этой кнопки меняется на белый. Когда я нажимаю другую кнопку, я хочу, чтобы предыдущая кнопка была нажата, чтобы изменить ее фон на серый, и эту кнопку недавно щелкнули, чтобы изменить фон на белый. Вот код, который я написал:Установка фона Jbutton
int liveButton = 0; //holds the value of the button that is last clicked.
//0 indicates no button clicked (in the beginning)
private void ChangeInUsersList(int clickedButton) {
switch(liveButton) {
case 1 : b1.setBackground(Color.GRAY);
break;
case 2 : b2.setBackground(Color.GRAY);
break;
case 3 : b3.setBackground(Color.GRAY);
break;
case 4 : b4.setBackground(Color.GRAY);
break;
case 5 : b5.setBackground(Color.GRAY);
break;
default: System.out.println("No button to change");
}
liveButton = clickedButton;// store the clicked button to change its
//background later
}
private void b1ActionPerformed(java.awt.event.ActionEvent evt) {
ChangeInUsersList(1);
b1.setBackground(new java.awt.Color(255,255,255));
}
private void b2ActionPerformed(java.awt.event.ActionEvent evt) {
ChangeInUsersList(2);
b2.setBackground(new java.awt.Color(255,255,255));
}
private void b3ActionPerformed(java.awt.event.ActionEvent evt) {
ChangeInUsersList(3);
b3.setBackground(new java.awt.Color(255,255,255));
}
private void b4ActionPerformed(java.awt.event.ActionEvent evt) {
ChangeInUsersList(4);
b4.setBackground(new java.awt.Color(255,255,255));
}
private void b5ButtonActionPerformed(java.awt.event.ActionEvent evt) {
ChangeInUsersList(5);
b5.setBackground(new java.awt.Color(255,255,255));
}
Однако, он не работает должным образом. Когда я нажимаю кнопку, ее фон меняется на белый. Однако, если я нажму на какую-нибудь другую кнопку после этого, фон прежней кнопки не изменится на серый. Я попытался заменить Color.GREY с новый java.awt.Color (236,233,216) - rgb для серого, но он все еще не работает.
Вы пытаетесь имитировать то, что делает ButtonGroup? например можно выбрать или переключить только одну кнопку? btw: заменить новый java.awt.Color (255,255,255) с java.awt.Color.white – Tedil
да! но я не понял, что ButtonGroup существует. Я предположил, что группа buttongroup предназначена только для переключателей. – mithun1538