条件に基づいてそれ自体を有効または無効にするJButtonコンポーネントのサブクラスを作成しようとしています(以下のようになります)
public interface Condition {
public static final Condition TRUE = new Condition() {
public boolean test() {
return true;
} };
public static final Condition FALSE = new Condition() {
public boolean test() {
return false;
} };
public boolean test();
}
ただし、JButtonコードはすべて、JButtonクラスにプライベートに格納されている実際のブール値に基づいています。私の質問は、保存されているisEnabledブール値を(setEnabled(boolean)経由で)更新するためにJButtonのどのメソッドをオーバーライドできるかということです。update(Graphics)でしょうか?またはrepaint()?または他の機能?
編集:私が作成しようとしていることは実際には不可能であることに気づきました。ただし、別のスレッドが短時間待機し、ボタンにそのステータスをチェックするように強制する場合を除きます(これはグロスであり、私はそれをしたくありません)。実際のところ、ボタンはリアクティブのみです。ボタンクラスを使用する人はだれでもオーバーヘッドを使ってこれを達成することは可能ですが、その時点では、実際に変更されているものにリスナーを記述し、その時点でボタンを切り替える方が簡単です。うわー。