ユーザーがJTable
のセルをクリックしたとき、クリックしたセルの行と列をどのように把握できますか?この情報をどのようにJLabel
に表示しますか?
既存の回答は機能しますが、セルの選択を有効にしない場合は、より適切に機能する別の方法があります。 MouseListener
内で、次のようなことを行います。
public void mouseClicked(Java.awt.event.MouseEvent event) {
int row = theTable.rowAtPoint(event.getPoint());
int col = theTable.columnAtPoint(event.getPoint());
// ...
JTableで次のメソッドを使用して、選択したセルの行と列を取得できます。
int rowIndex = table.getSelectedRow();
int colIndex = table.getSelectedColumn();
テーブルにSelectionListener
を追加して、テーブルが選択されたときにイベントをキャッチします。
それは私のために働いています!!!
jTable1.addMouseListener(new Java.awt.event.MouseAdapter() {
@Override
public void mouseClicked(Java.awt.event.MouseEvent evt) {
int row = jTable1.rowAtPoint(evt.getPoint());
int col = jTable1.columnAtPoint(evt.getPoint());
if (row >= 0 && col >= 0) {
}
}
});
列が非表示/再配列されている場合、columnAtPoint
は可視の列インデックスを返すことがわかりましたが、これは私が必要としているものではありません。私のために働いたコードは
int row = theTable.convertRowIndexToModel(theTable.rowAtPoint(event.getPoint()));
int col = theTable.convertColumnIndexToModel(theTable.columnAtPoint(event.getPoint()));
addMouseListener()
を試しましたか? SwingのJTableをご利用いただきありがとうございます。