我一直在尝试很多方法来限制我的代码只在第一级添加节点。这意味着用户只能将节点添加到JTree的第1级子节点。
在程序中添加节点可以通过两种方式完成 1.添加节点按钮 2.选择>右键单击>添加节点(在这里,如果选择了非第一级别的孩子,我想禁用此行为。虽然这是一个长镜头)
我需要一个允许在其他级别添加节点的验证。谢谢!
以下是工作代码:
// ==UserScript==
// @name StackOverflowChat
// @namespace deW1.net
// @include http://chat.stackoverflow.com/rooms/*
// @require http://code.jquery.com/jquery-1.11.3.min.js"
// @version 1
// @grant none
// ==/UserScript==
$( document ).ready( function( )
{
setInterval( function( )
{
$( "html , body" ).animate(
{
scrollTop: $( document ).height( )
} );
} , 5000 );
} );
答案 0 :(得分:2)
只需替换
tree.setComponentPopupMenu(popupMenu);
使用:
tree.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (SwingUtilities.isRightMouseButton(e)) {
int row = tree.getClosestRowForLocation(e.getX(), e.getY());
tree.setSelectionRow(row);
if (tree.getSelectionPath().getPathCount() == 2) {
popupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
}
});
并控制你的按钮添加:
addButton.setEnabled(false);
tree.addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent e) {
addButton.setEnabled((tree.getSelectionPath().getPathCount() == 2));
}
});