2016-08-29 8 views
0

たとえば、JListはどのようにMouseEventを取得しますか?そして、自分自身でComponentMouseListenerを作成するにはどうすればよいですか?通常のコンポーネントはどのようにマウスイベントを検出しますか

公式JList秒、JButton秒、JCheckBox ESおよびその他のswingコンポーネントMouseListener Sを使用していないが、彼らは何ですか?彼らは何を使用していますか、私が1つを作っているなら何を使うべきですか? (おそらくaccessibilityサポート付き)

+0

https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html – c0der

答えて

2

公式コンポーネントは通常のリスナー(MouseListerner、ComponentListener、FocusListenerなど)を使用しますが、Look & Feel UIクラスにすべてカプセル化されているため、すぐには表示されません。例えば。 JListの場合、BasicListUIの内部を見て、適切なリスナーを見つけます。

カスタムコンポーネントの場合、通常、リスナーを直接実装するだけで十分です。ただし、プラグイン可能なルック・アンド・フィールをサポートしたい場合は、標準のjreコンポーネントと同じように、ルック・アンド・フィールごとにUI実装を提供する必要があります。

1

コンポーネントの必見JComponentを拡張し、MouseListener

これらはあなたがオーバーライドする必要がありますメソッドです実装:

@Override 
public void mouseClicked(MouseEvent e) { 
    throw new UnsupportedOperationException(); 
} 

@Override 
public void mousePressed(MouseEvent e) { 
    throw new UnsupportedOperationException(); 
} 

@Override 
public void mouseReleased(MouseEvent e) { 
    throw new UnsupportedOperationException(); 
} 

@Override 
public void mouseEntered(MouseEvent e) { 
    throw new UnsupportedOperationException(); 
} 

@Override 
public void mouseExited(MouseEvent e) { 
    throw new UnsupportedOperationException(); 
} 

、アクセシビリティの観点から、あなたは、実装に必要なメソッドが依存しますアクセシビリティAPIに公開されている要素の役割ボタンの場合、mouseClickedハンドラーを実装する必要があります。これは、アクセシビリティーAPIがディスパッチしようとするものなのでです。

関連する問題