Я бы предложил вам создать новый класс, который будет обрабатывать ваш запрос для определенного компонента и не использовать обработчик событий anonymouse:
public class ButtonHandler extends AbstractAction {
private JComponent componentToDisable;
public ButtonHandler(JComponent comp, String text) {
super(text);
componentToDisable = comp;
}
public void actionPerformed(ActionEvent event) {
componentToDisable.setEnabled(false);
}
}
Как это использовать:
/* TextPane 'a' **/
txtpnA = new JTextPane();
txtpnA.setBounds(47, 88, 89, 20);
contentPane.add(txtpnA);
txtpnA.setBorder(BorderFactory.createLineBorder(Color.black));
JButton btnA = new JButton(new ButtonHandler(textpnA, "a"));
btnA.setBackground(Color.YELLOW);
btnA.setBounds(47, 54, 89, 23);
contentPane.add(btnA);
Та же процедура для других кнопок.
JButton btnB = new JButton(new ButtonHandler(textpnB, "b"));
JButton btnC = new JButton(new ButtonHandler(textpnC, "c"));
И последнее, но не менее важное. Как уже упоминал Эндрю Томпсон:
Java GUI должны работать на разных ОС, размерах экрана, разрешении экрана и т. Д., Используя разные PLAF в разных локалях. Как таковые, они не способствуют идеальному макету пикселей. Вместо этого используйте менеджеры макетов или их комбинации вместе с отступами макетов и границами для пробелов.