Hallo ich habe ein Problem ...
Ich habe ein JTree mit Panels als UserObjects bzw. der CellRenderer gibt auch JPanels zurück.
Ebenfalls habe ich einen CellEditor implementiert, damit ich u.a. in den Panels einen Button klicken kann.
Doch das Problem ist, der Tooltip des Buttons ist erst dann sichtbar wenn das Panel bearbeitet wird bzw. der
CellEditor anspringt.
Ich will dass egal welchen Panel ich gerade bearbeite Tooltips zu den einzelnen Komponenten der Panel angezeigt werden.
Hier initialisiere ich meinen JTree ...
Wenn jemand eine Idee hat, würde ich mich sehr freuen...
Ich bin jedenfalls ratlos ...
Hat jemand Beispiele?
Gut auf jeden Fall vielen Dank
MfG
Danny
Ich habe ein JTree mit Panels als UserObjects bzw. der CellRenderer gibt auch JPanels zurück.
Ebenfalls habe ich einen CellEditor implementiert, damit ich u.a. in den Panels einen Button klicken kann.
Doch das Problem ist, der Tooltip des Buttons ist erst dann sichtbar wenn das Panel bearbeitet wird bzw. der
CellEditor anspringt.
Ich will dass egal welchen Panel ich gerade bearbeite Tooltips zu den einzelnen Komponenten der Panel angezeigt werden.
Hier initialisiere ich meinen JTree ...
Code:
public JTree getTree() {
if(tree == null){
ConditionTreeCellRenderer renderer = new ConditionTreeCellRenderer();
ConditionTreeCellEditor editor = new ConditionTreeCellEditor(renderer);
ConditionTreeModel model = new ConditionTreeModel(editor, themeContainer, entryContainer, dialogContainer, typeContainer);
model.addTreeModelListener(this);
tree = new JTree(model){
private static final long serialVersionUID = 1L;
public String getToolTipText(MouseEvent evt) {
int row = getRowForLocation(evt.getX(), evt.getY());
if (row == -1) return null;
TreePath curPath = getPathForLocation(evt.getX(), evt.getY());
DefaultMutableTreeNode node = (DefaultMutableTreeNode) curPath.getLastPathComponent();
Component c = this.getCellRenderer().getTreeCellRendererComponent(this, node, false, false, true, row, false);
MouseEvent newEvent = SwingUtilities.convertMouseEvent(evt.getComponent(), evt, c);
System.out.println("Source Point:" + evt.getPoint().toString() + " Point:" + newEvent.getPoint() + " P:" + SwingUtilities.convertPoint((JPanel) node.getUserObject(), newEvent.getPoint(), Toolbox.getHeadFrame(this)));
return ((JPanel) node.getUserObject()).getToolTipText(newEvent);
//Hier sollte der entsprechende Tooltip-Text vom Panel geliefert werden
}
};
ToolTipManager.sharedInstance().registerComponent(tree);
tree.setCellRenderer(renderer);
tree.setEditable(true);
tree.setCellEditor(editor);
tree.setRowHeight(0);
tree.setBackground(null);
tree.setRootVisible(false);
expandTree();
}
return tree;
}
//Panel-Methode die aufgerufen wird
public String getToolTipText(MouseEvent event) {
System.out.println("Component " + getComponentAt(event.getPoint())); //liefert immer null
return ((JComponent) getComponentAt(event.getPoint())).getToolTipText();
}
Wenn jemand eine Idee hat, würde ich mich sehr freuen...
Ich bin jedenfalls ratlos ...
Hat jemand Beispiele?
Gut auf jeden Fall vielen Dank
MfG
Danny