JLabelのか、JTableのセル上のActionListener
-
21-09-2019 - |
質問
私はデータとしてJLabel[][]
でのJTableを持っています。今、私はJLabelの表のセル(だけの列のいずれかで)のいずれかをダブルクリックを検出します。どのように私は?それぞれのテーブルのセルをJLabelの上のアクション/のMouseListenerを追加することができます。
解決
いかがます:
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
JTable target = (JTable)e.getSource();
int row = target.getSelectedRow();
int column = target.getSelectedColumn();
// do some action if appropriate column
}
}
});
他のヒント
基本的には1と同じ提案が既に除いて受け入れます:
A)あなたはのmousePressedを処理しなければならない、ではないのmouseClicked。 mousePressedとのmouseReleasedイベントが同じ画素位置に生成されたときのmouseClickedイベントのみが焼成されます。あなたのユーザーが移動した場合、マウス、あなたが期待されるダブルクリックを取得することはありませんダブルクリックしながらも、1つのピクセルます。
b)はまた、あなたがクリックされたセルを取得するためにcolumnAtPoint()とrowAtPoint()メソッドを使用して検討する必要があります。それはおそらく、この場合の違いはありませんが、選択が変更されていないので、あなたは、マウスの右クリックをするMouseListenerを使用しようとすると、それは問題になります。あなたがこの方法を使用するのが習慣に取得するのであれば、あなたは、将来的に問題を持っていません。
所属していません StackOverflow