我正在使用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. 如何獲取雙擊下的單詞?
- 2. wxPython中如何獲取被雙擊
- 3. 獲取鼠標雙擊pyHook
- 4. 獲取標題欄雙擊
- 5. 如何獲得TSpeedButton的雙擊事件。
- 6. 獲取雙擊項目的ID
- 7. 如何獲取WPF中的雙擊時間
- 8. 雙擊div,p,span時如何獲取選定的單詞?
- 9. 雙擊GridView行並獲取Id值
- 10. 雙擊以獲取DynamciLayer彈出框
- 11. 雙擊DataGridvView行後獲取記錄ID
- 12. 雙擊後獲取行信息
- 13. D3圖:如何在雙擊事件中獲取x,y值
- 14. 如何通過雙擊獲取列標題文本
- 15. 如何在雙擊安卓手機圖表中獲取價值
- 16. 如何處理GridView上的行雙擊,以及如何獲取選定的行
- 17. 如何獲取被點擊
- 18. 如何識別JXTreeTable中的TreeTableNode是否隱藏?
- 19. 如何停止雙擊/雙張表單?
- 20. 雙擊事件觸發時如何取消單擊事件
- 21. 獲取點擊和雙擊使用jquery.finger工作
- 22. 如何從雙指針獲取值?
- 23. 如何使用LinQ獲取雙記錄?
- 24. 如何實現雙擊?
- 25. 如何觸發雙擊()
- 26. 如何單並雙擊
- 27. 如何檢測MEDIA_BUTTON雙擊?
- 28. 如何檢測android雙擊?
- 29. 如何執行雙擊?
- 30. 如何傾聽雙擊jstree?
高興你有一個解決方案:-)只是要注意:這種方式聽衆將火在其中包含節點的表單元格雙擊_anywhere_,不只是當_directly_在節點(又名:其文字)。 – kleopatra 2012-02-04 11:32:12
這是我的意圖,但很多謝謝你的答案無論如何:)! – user107043 2012-02-06 22:42:27