Я пытаюсь использовать JTree и реализовать различные раскрывающиеся списки для всех родительских узлов и дочерних узлов.
Вот что я сделал:
pmTree.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
public void mouseClicked(java.awt.event.MouseEvent evt) {
try {
if(evt.getButton() == evt.BUTTON1) {
}
else if (evt.getButton() == evt.BUTTON3) {
TreePopup(evt);
//pmTree.updateUI();
}
}catch (Exception e) {}
}
});
и PopupCode:
public void TreePopup(java.awt.event.MouseEvent evt) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) pmTree.getLastSelectedPathComponent();
popup = new JPopupMenu();
popup.setInvoker(pmTree);
PopupHandler handler = new PopupHandler(pmTree, popup);
if(node.getLevel() == 1)
{
popup.add(getMenuItem("Parent Node", handler));
}
else if(node.getLevel() == 2)
{
popup.add(getMenuItem("Child", handler));
}
}
и PopUpHandler:
public class PopupHandler extends javax.swing.JFrame implements ActionListener {
JPopupMenu popup;
Point loc;
public PopupHandler(JTree tree, JPopupMenu popup) {
//this.tree = NewJFrame.pmTree;
this.popup = popup;
tree.addMouseListener(ma);
}
, а также
public void actionPerformed(java.awt.event.ActionEvent evt)
для узла Child или Parent, по которому щелкают.
ОднакоКогда я запускаю программу, я получаю ОДНО ЖЕ всплывающие окна правой кнопкой мыши для дочернего и родительского узла.
Извините за огромный кусок кода.Я застрял с ним в течение 2 дней и все же не удалось.Спасибо!