Один из способов:
((JButton)ae.getSource()).setEnabled(false);
:
EG
Вот SSCCE, основанный на вашем предыдущем коде.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GuiCreator extends JFrame
{
public GuiCreator()
{
super("Seats");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = getContentPane();
contentPane.add(new SeatingPanel());
pack();
setVisible(true);
}
public static void main(String[] args) {
new GuiCreator();
}
}
class SeatListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent ae) {
//String firstName = showInputDialog();
//String lastName = showInputDialog();
//sw101.AddPassenger(firstName, lastName, seatingID);//adding a passenger
((JButton)ae.getSource()).setEnabled(false);
}
public String showInputDialog() {
return JOptionPane.showInputDialog(null, "Enter Data");
}
}
class SeatingPanel extends JPanel
{
public SeatingPanel()
{
super(new BorderLayout());
JPanel panel4seating = new JPanel();//creating a grid panel
panel4seating.setLayout(new GridLayout(4, 10));//setting the layout of the grid panel
JButton [] seats = new JButton [40]; //creating a pointer to the buttonsArray
ActionListener listener = new SeatListener();
for (int i = 0; i < 40; i++)
{
seats[i] = new JButton();//creating the buttons
//better to set the preferred size of the button
seats[i].setPreferredSize(new Dimension(50,25));
panel4seating.add(seats[i]);
seats[i].addActionListener(listener);
}
add(panel4seating, BorderLayout.CENTER);
}
}
Снимок экрана
![enter image description here](https://i.stack.imgur.com/UyluY.png)