как подключить JButtons из списка к actionListener - PullRequest
1 голос
/ 24 января 2020

У меня есть динамическое c количество JButtons в списке, и мне нужна помощь для подключения их к actionListener

Сначала я создаю кнопки на основе списка с именем alt:

for(int i =0;i<alt.size();i++) {
        JButton button = new JButton (alt.get(i));
        button.addActionListener(this); 
        buttonList.add(button);
    }

Позже я добавляю такие кнопки

private void gui(List<JButton> bList) {

    f = new JFrame("window");
    f.setLayout(new BorderLayout());    
    f.setVisible(true); 

    JPanel buttonPane = new JPanel();
    buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.PAGE_AXIS));

    for(int i =0;i<bList.size();i++) {
        buttonPane.add(bList.get(i));
    }
    f.add(buttonPane, BorderLayout.SOUTH);
 }

Я знаю, что никогда не будет больше 4 кнопок. Итак, как я могу подключиться к правой кнопке в ActionListener? без их объявления вне рамок gui или индивидуального имени?

    public void actionPerformed(ActionEvent e) {


        if(e.getSource() == ?) {  
        } else if (e.getSource() == ?) {
        } else if (e.getSource() == ?){
        }else if (e.getSource() == ?){
        }
}

1 Ответ

1 голос
/ 24 января 2020

Если ваши кнопки выполняют действия, вы должны реализовать отдельные прослушиватели действий для каждой кнопки, иначе в вашем e.getSource() == ? ? должен быть экземпляр JButton, например: e.getSource() == bList.get(0)

...