如何在JavaSwing中禁用一个按钮而不是全部按钮?

如何在JavaSwing中禁用一个按钮而不是全部按钮?,java,swing,button,jbutton,actionlistener,Java,Swing,Button,Jbutton,Actionlistener,我的所有按钮都连接了一个actionListener。我有26个按钮,每个对应一个字母表。单击字母表后,我想单独禁用该按钮。我怎样才能实现这个Jwing? 我正在粘贴代码的一部分,因为我的整个代码太长,并且有其他不必要的细节。 谢谢 public DetailsPanel(猜测窗格猜测){ setLayout(新的BorderLayout()); setboorder(BorderFactory.createTitledBorder(“单击此处”); JPanel letterPanel=新JP

我的所有按钮都连接了一个actionListener。我有26个按钮,每个对应一个字母表。单击字母表后,我想单独禁用该按钮。我怎样才能实现这个Jwing? 我正在粘贴代码的一部分,因为我的整个代码太长,并且有其他不必要的细节。 谢谢

public DetailsPanel(猜测窗格猜测){
setLayout(新的BorderLayout());
setboorder(BorderFactory.createTitledBorder(“单击此处”);
JPanel letterPanel=新JPanel(新网格布局(0,5));

对于(char alphabet='A';alphabet您可以使用
event.getSource()
(并且
注意getSource()
返回一个
对象,因此您还需要强制转换它):


在你的ActionListener中按button.setEnabled(false)?@Stanislav Mamontov他真正想问的是如何检测哪个按钮触发了事件是的,检测哪个按钮触发了事件,然后仅禁用that@user1988876,Stanislav已经给了您答案。或者您可以简单地禁用源代码。
((AbstractButton)event.getSource()).setEnabled(false);
1+-1,您已经知道了源代码,因为您从ActionEvent中获得了源代码按钮。那么,为什么需要将源代码与其他按钮进行比较?@camickr是的,很抱歉,我一时忘记了问题是什么
public DetailsPanel(GuessPane guess) {
            setLayout(new BorderLayout());
            setBorder(BorderFactory.createTitledBorder(" click here "));

            JPanel letterPanel = new JPanel(new GridLayout(0, 5));
            for (char alphabet = 'A'; alphabet <= 'Z'; alphabet++) {
                String buttonText = String.valueOf(alphabet);
                JButton letterButton = new JButton(buttonText);
                letterButton.addActionListener(clickedbutton(guess));
                letterPanel.add(letterButton, BorderLayout.CENTER);
            }
            add(letterPanel, BorderLayout.CENTER);
        }

        private ActionListener clickedbutton(final GuessPane guess) {
            return new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    JButton pressedButton = (JButton) e.getSource();
                    String actionCommand = e.getActionCommand();
                    try {
                        System.out.println("actionCommand is: ---" + actionCommand);
                        guess.setLetter(actionCommand);
                    } catch (ParseException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
((AbstractButton)event.getSource()).setEnabled(false);