コード例 #1
0
 /** Sanity: icons updated on LF change. */
 public void testTreeIconsUpdateUI() {
   JXTree tree = new JXTree();
   DefaultTreeRenderer renderer = new DefaultTreeRenderer();
   tree.setCellRenderer(renderer);
   WrappingIconPanel before =
       (WrappingIconPanel)
           renderer.getTreeCellRendererComponent(tree, "", false, false, true, -1, false);
   Icon leaf = before.getIcon();
   assertNotNull("sanity", leaf);
   assertEquals("sanity", UIManager.getIcon("Tree.leafIcon"), leaf);
   String lf = UIManager.getLookAndFeel().getName();
   setSystemLF(!defaultToSystemLF);
   if (lf.equals(UIManager.getLookAndFeel().getName())) {
     LOG.info("cannot run test - equal LF" + lf);
     return;
   }
   SwingUtilities.updateComponentTreeUI(tree);
   WrappingIconPanel after =
       (WrappingIconPanel)
           renderer.getTreeCellRendererComponent(tree, "", false, false, true, -1, false);
   Icon leafAfter = after.getIcon();
   assertNotNull("sanity", leafAfter);
   assertFalse("sanity", leaf.equals(leafAfter));
   assertEquals("icon must be updated", UIManager.getIcon("Tree.leafIcon"), leafAfter);
 }
コード例 #2
0
  public void interactiveTransparentRenderer() throws IOException {
    final JXTree tree = new JXTree(new ComponentTreeTableModel(new JXFrame()));
    tree.setEditable(true);
    StringValue sv =
        new StringValue() {

          public String getString(Object value) {
            if (value instanceof Component) {
              return ((Component) value).getName();
            }
            return " - no component - ";
          }
        };
    DefaultTreeRenderer renderer = new DefaultTreeRenderer(sv);
    tree.setCellRenderer(renderer);
    tree.setForeground(Color.WHITE);
    JXPanel panel = new JXPanel(new BorderLayout());
    ImagePainter imagePainter = new ImagePainter(XTestUtils.loadDefaultImage());
    imagePainter.setFillHorizontal(true);
    imagePainter.setFillVertical(true);
    panel.setBackgroundPainter(imagePainter);
    panel.add(new JScrollPane(tree));

    JXFrame frame = wrapInFrame(panel, "renderer");
    WrappingProvider provider = (WrappingProvider) renderer.getComponentProvider();
    provider.getWrappee().getRendererComponent(null).setOpaque(false);
    tree.setOpaque(false);
    ((JComponent) tree.getParent()).setOpaque(false);
    ((JComponent) tree.getParent().getParent()).setOpaque(false);
    Action edit =
        new AbstractActionExt("edit") {

          public void actionPerformed(ActionEvent e) {
            if (tree.isSelectionEmpty()) return;
            TreePath path = tree.getSelectionPath();
            Component comp = (Component) path.getLastPathComponent();
            String oldName = comp.getName();
            if (oldName == null) {
              oldName = "none";
            }
            String changed =
                oldName.length() > 60
                    ? oldName.substring(0, 20)
                    : oldName + "+++++++++++++++++++++++++++++++++++++++++++++";
            tree.getModel().valueForPathChanged(path, changed);
          }
        };
    addAction(frame, edit);
    show(frame);
  }