Swing/TreeNodePopupMenu のバックアップ(No.8)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TreeNodePopupMenu へ行く。
- category: swing folder: TreeNodePopupMenu title: JTreeのノード上でJPopupMenuを表示 tags: [JTree, JPopupMenu, TreePath] author: aterai pubdate: 2009-06-01T15:04:19+09:00 description: JTreeのノード上でクリックした場合のみ、JPopupMenuを表示します。 image:
概要
JTree
のノード上でクリックした場合のみ、JPopupMenu
を表示します。
Screenshot
Advertisement
サンプルコード
class TreePopupMenu extends JPopupMenu {
protected TreePopupMenu() {
super();
add("path").addActionListener(e -> {
JTree tree = (JTree) getInvoker();
JOptionPane.showMessageDialog(
tree, tree.getSelectionPaths(), "path", JOptionPane.INFORMATION_MESSAGE);
});
add("dummy");
}
@Override public void show(Component c, int x, int y) {
if (c instanceof JTree) {
JTree tree = (JTree) c;
TreePath path = tree.getPathForLocation(x, y);
if (tree.getSelectionCount() > 0
&& Arrays.asList(tree.getSelectionPaths()).contains(path)) {
super.show(c, x, y);
}
}
}
}
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JTree
のノードが選択されている、かつ選択されたノード上にカーソルがある場合のみJPopupMenu
を表示可能に設定しています。