簡體   English   中英

確定單擊哪個JTable單元

[英]Determine Which JTable Cell is Clicked

當用戶單擊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以在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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM