我正在使用Eclipse,我有一個關於JXTreeTables的問題。當一個節點被雙擊時,我想要一個窗口,顯示有關該節點的一些信息,以便彈出。現在,是否有可能獲得JXTreeTable的雙擊節點,或者如果點擊不是直接在節點上,則爲null?如何獲取雙擊的TreeTableNode?
5
A
回答
4
我收到了關於線索kleopatra提到的答案,它的工作原理非常好,而且更簡單。下面是代碼:
treeTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(final MouseEvent e) {
if (e.getClickCount() != 2) {
return;
}
final int rowIndex = treeTable.rowAtPoint(e.getPoint());
if (rowIndex < 0) {
return;
}
final TreeTableNode selectedNode = (TreeTableNode)treeTable.getPathForRow(rowIndex).getLastPathComponent();
}
});
2
假設你的意思tree.getRowForLocation(...)的行爲:沒有對treetable中沒有API,你打缺少API,並可能考慮在swingx問題跟蹤對文件的改進問題:-)
在可用之前,您必須自己在一個自定義的MouseListener中委託給相應的樹方法。在去稍(咳..)髒型坯連鑄渲染器分層列到JTree:
MouseListener l = new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() != 2) return;
int column = treeTable.columnAtPoint(e.getPoint());
if (!treeTable.isHierarchical(column)) return;
Rectangle cell = treeTable.getCellRect(0, column, false);
JXTree tree = (JXTree) treeTable.getCellRenderer(0, column);
// translate x to tree coordinates
int translatedX = e.getX() - cell.x;
int row = tree.getRowForLocation(translatedX, e.getY());
LOG.info("row " + row);
}
};
treeTable.addMouseListener(l);
只是爲了記錄在案,有一個在Swinglabs forum over at java.net
編輯
並行線程的假設;-)
隨着有機磷農藥的困境自己的答案聽者會火上雙擊任何地方在表包含該節點的單元格,而不僅僅是當節點(又名:其文本)上的直接。所以原來這個需求更多地沿着tree.getClosestRowForLocation(..)的方向,而不是假定的tree.getRowForLocation(..)。
相關問題
- 1. 獲取鼠標雙擊pyHook
- 2. 獲取雙擊項目的ID
- 3. 如何獲取WPF中的雙擊時間
- 4. 雙擊後獲取行信息
- 5. 如何在雙擊安卓手機圖表中獲取價值
- 6. 如何處理GridView上的行雙擊,以及如何獲取選定的行
- 7. 獲取點擊和雙擊使用jquery.finger工作
- 8. 雙擊事件觸發時如何取消單擊事件
- 9. 如何單並雙擊
- 10. 如何檢測MEDIA_BUTTON雙擊?
- 11. 如何傾聽雙擊jstree?
- 12. 如何觸發雙擊()
- 13. 如何從列表視圖獲取其雙擊事件(WPF)的價值
- 14. 如何通過雙擊表中的鼠標獲取行號或單元號
- 15. 雙擊取消對移動
- 16. 如何識別JXTreeTable中的TreeTableNode是否隱藏?
- 17. 如何防止雙擊「點擊」jquery
- 18. 如何獲得使用jquery的雙擊之間的時差?
- 19. 雙擊/雙擊Angular2&ionic
- 20. 雙[] - >雙擊[,]
- 21. 獲取jQuery中的雙擊事件表的rowid
- 22. 如何獲取用戶的擊鍵?
- 23. 如何獲取點擊行的id值?
- 24. 如何從BrowserField獲取點擊的URL?
- 25. 如何獲取點擊鏈接的URL?
- 26. 如何在VB.NET中的listview上捕獲autosize雙擊事件?
- 27. 獲取緯度/從雙擊聽衆MapView的經度
- 28. 獲取數據雙擊不可編輯的Kendo計劃程序
- 29. 獲取雙擊以恢復Android中的畫布
- 30. 如何獲取雙號範圍選取器的選定值
高興你有一個解決方案:-)只是要注意:這種方式聽衆將火在其中包含節點的表單元格雙擊_anywhere_,不只是當_directly_在節點(又名:其文字)。 – kleopatra 2012-02-04 11:32:12
這是我的意圖,但很多謝謝你的答案無論如何:)! – user107043 2012-02-06 22:42:27