Swing/TreeNodePopupMenu のバックアップ(No.4)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TreeNodePopupMenu へ行く。
- title: JTreeのノード上でJPopupMenuを表示 tags: [JTree, JPopupMenu, TreePath] author: aterai pubdate: 2009-06-01T15:04:19+09:00 description: JTreeのノード上でクリックした場合のみ、JPopupMenuを表示します。
概要
JTree
のノード上でクリックした場合のみ、JPopupMenu
を表示します。
Screenshot
Advertisement
サンプルコード
static class TreePopupMenu extends JPopupMenu {
private TreePath[] tsp;
public TreePopupMenu() {
super();
add(new AbstractAction("path") {
@Override public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(
null, tsp, "path", JOptionPane.INFORMATION_MESSAGE);
}
});
add(new JMenuItem("dummy"));
}
@Override 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
のノードが選択されている- 選択されたノード上にカーソルがある