Swing/TreeNodePopupMenu のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TreeNodePopupMenu へ行く。
TITLE:JTreeのノード上でJPopupMenuを表示
Posted by aterai at 2009-06-01
JTreeのノード上でJPopupMenuを表示
JTreeのノード上でクリックした場合のみ、JPopupMenuを表示します。
- &jnlp;
- &jar;
- &zip;
サンプルコード
static class TreePopupMenu extends JPopupMenu {
private TreePath[] tsp;
public TreePopupMenu() {
super();
add(new AbstractAction("path") {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, tsp, "path",
JOptionPane.INFORMATION_MESSAGE);
}
});
add(new JMenuItem("dummy"));
}
public void show(Component c, int x, int y) {
JTree tree = (JTree)c;
tsp = tree.getSelectionPaths();
if(tsp!=null) {
TreePath path = tree.getPathForLocation(x, y);
if(path!=null && Arrays.asList(tsp).contains(path)) {
super.show(c, x, y);
}
}
}
}
View in GitHub: Java, Kotlin解説
上記のサンプルでは以下の場合、JPopupMenuを表示しています。
- JTreeのノードが選択されている
- 選択されたノード上にカーソルがある