Как создать подкласс JButton, который делает себя кнопкой окна по умолчанию?
Я понимаю, что назначение кнопки по умолчанию устанавливается на JRootPane, а не на самой кнопке.Вместо добавления такого кода в каждое окно, я хотел бы указать кнопку по умолчанию, создав экземпляр подкласса JButton, "JButton_Default".Подкласс должен найти JRootPane и установить себя в качестве кнопки по умолчанию.
Я попытался сделать это в конструкторе подкласса.К сожалению, этот подход работает.Я полагаю, что это имеет смысл, так как строящаяся кнопка еще не является формой, поэтому она не может найти JRootPane.
Есть ли другой способ запрограммировать этот подкласс JButton?
Вот мой подкласс, который не работает:
import javax.swing.*;
public class JButton_Default extends JButton {
public JButton_Default() {
super();
JRootPane pane = this.getRootPane();
pane.setDefaultButton(this);
}
}
решено ----------------
Вот код для подкласса JButton, который делает себя кнопкой по умолчанию для окна, к которому он был добавлен.
import javax.swing.*;
public class JButton_Default extends JButton {
@Override
public void addNotify() { // Upon being added to a window, make this JButton the default button of the window.
super.addNotify();
SwingUtilities.getRootPane( this ).setDefaultButton( this );
}
}