我試圖找到一種方法來檢測用戶在JTable中選擇的列的更改。我做了一些探討,看來你需要以某種方式使用TableColumnModelListener來檢測變化,但是當你改變你選擇的列時,這似乎不會觸發事件。檢測JTable中的選擇更改
回答
您需要添加一個ListSelectionListener
代替。這將捕獲選擇事件。下面是進一步深入進去一些搖擺教程:
http://download.oracle.com/javase/tutorial/uiswing/events/listselectionlistener.html http://download.oracle.com/javase/tutorial/uiswing/components/table.html#selection
我已經有了一個listselectionlistener,它在從第2行第3列到第3行第3列時有奇效。但是,它非常類似那裏的演示,當您從行中更改所選內容時,它不會觸發事件2列3至第2列第2列,因此無法檢測到變化。 – Jonathan 2011-03-28 01:40:24
在這種情況下,您需要兩個listselectionlisteners。一個添加到列模型就像這個例子:http://download.oracle.com/javase/tutorial/uiswing/examples/components/index.html#SimpleTableSelectionDemo – jzd 2011-03-28 01:48:10
遲來的謝謝一堆。我無法在所有搜索中找到該網站,這正是我所尋找的。也許我需要調整我的搜索技巧:\ – Jonathan 2011-03-31 04:57:16
如果「改變」你的意思是更改單元格的值,那麼你可以使用一個AbstractTableModel貫徹fireTableCellUpdated方法
不,我在考慮用戶何時點擊不同的單元格,而不是當他們改變一個值時。表格中的數據無法編輯。 – Jonathan 2011-03-28 00:17:19
從我讀,我想你需要一個的MouseListener添加到您的表,例如在的mouseClicked將獲得的行和列使用下面的代碼,如下:
table.addMouseListener(new MouseListener()
{
@Override
public void mouseClicked(MouseEvent e)
{
Point pnt = evt.getPoint();
int row = table.rowAtPoint(pnt);
int col = table.columnAtPoint(pnt);
}
}
它應該對你很好我以前使用過類似的東西。 BTW它類似於我在coderanch,鏈接發現了問題: http://www.coderanch.com/t/332737/GUI/java/detect-single-click-any-cell
祝你好運,博羅
否 - 要求是在「選定」列中檢測到更改。這是一個高級(又名:語義)狀態,可以通過大量的低級事件(如鼠標,鍵盤,語音輸入)來改變它。作爲一般規則,總是要提供最高級別的抽象。 – kleopatra 2011-03-28 11:38:19
- 1. 檢測NSColorWell的更改選擇
- 2. 檢測UITextView上的選擇更改?
- 3. 檢測UIWebView文本選擇中的文本選擇更改
- 4. 攔截JTable的選擇更改事件
- 5. jQuery + Jeditable - 在選擇更改時檢測
- 6. JTable,TableColumnModelListener檢測選中的行
- 7. 使用jquery檢測選擇字段的選項值的更改
- 8. 檢測jstree中的複選框更改
- 9. 如何檢測選擇列表中的更改?
- 10. 檢測jQuery Mobile中的選擇滑塊更改事件
- 11. 檢測選擇是如何改變的
- 12. 在PageControl中檢測選項卡更改
- 13. JTable中的選擇模式?
- 14. 使用Jquery檢測選擇列表的更改
- 15. 檢測System.Windows.Forms.TabPage中的更改
- 16. 檢測EntityFrameWork中的更改
- 17. 檢測window.location中的更改
- 18. 檢測Wifi中的更改
- 19. 檢測html中的更改
- 20. 替代方法來檢測Knockout.js中已更改的選擇選項
- 21. JTable行選擇
- 22. TableModel更新後的JTable行選擇
- 23. JTable行選擇和數據檢索
- 24. JTable行選擇不改變數據
- 25. jQuery UI 1.8自動完成 - 如何檢測更改選擇
- 26. 即使未更改,也會選擇JQuery檢測下拉值
- 27. 檢測隱藏選擇選項中的更改事件,它本身通過javascript更改
- 28. 當從框中選擇值時檢測輸入字段中的更改
- 29. 聽jtable更改
- 30. 測試ReactJS與PhantomJS - 更改選擇值
什麼程序功能都在嘗試提供? – 2011-03-28 00:09:49
我有一個JTable,現在基本上可以用作pictoral日曆。我希望用戶可以點擊日曆中的某個單元格,並將該日期的所有約會都彈出到單獨的JTable中(這是在日曆檢測到用戶選擇了其他單元格時起作用的功能)。 – Jonathan 2011-03-28 00:36:54
@Jonathon謝謝你的解釋。它通常有助於說明目標,以及您爲實現該目標而採取的任何策略,以防萬一實現實際目標存在更好的策略。至少,它會給人們一個回答的上下文。說實話,在你添加目標之前,我並不瞭解這個問題的確切性質。說明目標也有助於滿足人們的好奇心。 ;) – 2011-03-28 06:54:46