List of usage examples for javax.swing JTree setPreferredSize
@BeanProperty(preferred = true, description = "The preferred size of the component.") public void setPreferredSize(Dimension preferredSize)
From source file:Main.java
public Main() { setLayout(new GridLayout(1, 3)); tree = new JTree(getTreeModel()); tree.setDragEnabled(true);// ww w . j a v a2 s.c o m tree.setPreferredSize(new Dimension(200, 400)); JScrollPane scroll = new JScrollPane(); scroll.setViewportView(tree); treeModel = getTreeModel(); JTree secondTree = new JTree(treeModel); secondTree.setPreferredSize(new Dimension(200, 400)); secondTree.setTransferHandler(new TransferHandler() { @Override public boolean importData(TransferSupport support) { if (!canImport(support)) { return false; } JTree.DropLocation dl = (JTree.DropLocation) support.getDropLocation(); TreePath path = dl.getPath(); int childIndex = dl.getChildIndex(); String data; try { data = (String) support.getTransferable().getTransferData(DataFlavor.stringFlavor); } catch (Exception e) { return false; } if (childIndex == -1) { childIndex = tree.getModel().getChildCount(path.getLastPathComponent()); } DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(data); DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) path.getLastPathComponent(); treeModel.insertNodeInto(newNode, parentNode, childIndex); tree.makeVisible(path.pathByAddingChild(newNode)); tree.scrollRectToVisible(tree.getPathBounds(path.pathByAddingChild(newNode))); return true; } public boolean canImport(TransferSupport support) { if (!support.isDrop()) { return false; } support.setShowDropLocation(true); if (!support.isDataFlavorSupported(DataFlavor.stringFlavor)) { System.out.println("only string is supported"); return false; } JTree.DropLocation dl = (JTree.DropLocation) support.getDropLocation(); TreePath path = dl.getPath(); if (path == null) { return false; } return true; } }); JScrollPane secondScroll = new JScrollPane(); secondScroll.setViewportView(secondTree); JPanel topPanel = new JPanel(new BorderLayout()); topPanel.add(scroll, BorderLayout.CENTER); JPanel btmPanel = new JPanel(new BorderLayout()); btmPanel.add(secondScroll, BorderLayout.CENTER); add(topPanel); add(btmPanel); }