В соответствии с моим предыдущим вопросом здесь: Удалить кнопку с тем же текстом при нажатии
Мне нужно, чтобы единственные кнопки, которые появляются более одной, исчезали при нажатии на них. Проблема в том, когданажав на «Уникальные» (см. рисунок), они тоже исчезнут.Мой код:
private String namesArr[] = {"Yakir","Yarden","Igor","Maoz","Moshe","Israel","Tal","Haim","Nati","Mor","Daniel","Idan"};
private Button buttonArr[] = new Button[namesArr.length];
private Font font;
public StudentsGUI(String caption) {
super(caption);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
this.setLayout(new GridLayout(3,3));
font = new Font("Ariel",Font.BOLD,35);
for(int i=0;i<namesArr.length;i++) {
buttonArr[i] = new Button(" "+namesArr[(int)(Math.random()*namesArr.length)]);
buttonArr[i].setFont(font);
buttonArr[i].addActionListener(this);
this.add(buttonArr[i]);
}
setLocation(800,500);
setVisible(true);
pack();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() instanceof Button) {
String btnText = ((Button)e.getSource()).getLabel();
for(int i=0; i<buttonArr.length; i++) {
if (buttonArr[i].getLabel().equals(btnText)) {
this.remove(buttonArr[i]);
pack();
}
}
}
}
Картинка, которая поможет вам понять:
Так что, если нажать «Идан», ведьма - это уникальное имя, ничего не произойдеттак как у него только один экземпляр, но при нажатии на «Maoz» все кнопки с заголовком «Maoz» исчезнут (это уже происходит)