Skip to content

Instantly share code, notes, and snippets.

@ezhov-da
Last active March 10, 2019 12:20
Show Gist options
  • Save ezhov-da/127a7e7e4b6022523300caf8cac44b78 to your computer and use it in GitHub Desktop.
Save ezhov-da/127a7e7e4b6022523300caf8cac44b78 to your computer and use it in GitHub Desktop.
java пример создания jtreetable
[code:]java[:code]
package testframe;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import org.jdesktop.swingx.JXTreeTable;
import org.jdesktop.swingx.treetable.AbstractTreeTableModel;
public class TestJTreeTable
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
try
{
UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel");
} catch (Exception ex)
{
Logger.getLogger(TestSubstance.class.getName()).log(Level.SEVERE, null, ex);
}
MyTreeTableModel treeTableModel = new MyTreeTableModel();
JXTreeTable treeTable = new JXTreeTable(treeTableModel);
treeTable.setShowsRootHandles(true);
treeTable.setShowGrid(true);
JFrame frame = new JFrame("test");
frame.add(treeTable);
frame.setSize(700, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
);
}
}
class MyTreeTableModel extends AbstractTreeTableModel
{
private MyTreeNode myroot;
public MyTreeTableModel()
{
myroot = new MyTreeNode("root", "Root of the tree");
myroot.getChildren().add(new MyTreeNode("Empty Child 1", "This is an empty child"));
MyTreeNode subtree = new MyTreeNode("Sub Tree", "This is a subtree (it has children)");
subtree.getChildren().add(new MyTreeNode("EmptyChild 1, 1", "This is an empty child of a subtree"));
subtree.getChildren().add(new MyTreeNode("EmptyChild 1, 2", "This is an empty child of a subtree"));
MyTreeNode subtreeTree = new MyTreeNode("еще подуровень", "ха, тестируем подуровень");
subtreeTree.getChildren().add(new MyTreeNode("а это подуровень", "ура"));
subtree.getChildren().get(0).getChildren().add(subtreeTree);
myroot.getChildren().add(subtree);
myroot.getChildren().add(new MyTreeNode("Empty Child 2", "This is an empty child"));
}
@Override
public int getColumnCount()
{
return 3;
}
@Override
public String getColumnName(int column)
{
switch (column)
{
case 0:
return "Name";
case 1:
return "Description";
case 2:
return "Number Of Children";
default:
return "Unknown";
}
}
@Override
public Object getValueAt(Object node, int column)
{
System.out.println("getValueAt: " + node + ", " + column);
MyTreeNode treenode = (MyTreeNode) node;
switch (column)
{
case 0:
return treenode.getName();
case 1:
return treenode.getDescription();
case 2:
return treenode.getChildren().size();
default:
return "Unknown";
}
}
@Override
public Object getChild(Object node, int index)
{
MyTreeNode treenode = (MyTreeNode) node;
return treenode.getChildren().get(index);
}
@Override
public int getChildCount(Object parent)
{
MyTreeNode treenode = (MyTreeNode) parent;
return treenode.getChildren().size();
}
@Override
public int getIndexOfChild(Object parent, Object child)
{
MyTreeNode treenode = (MyTreeNode) parent;
for (int i = 0; i > treenode.getChildren().size(); i++)
{
if (treenode.getChildren().get(i) == child)
{
return i;
}
}
return 0;
}
public boolean isLeaf(Object node)
{
MyTreeNode treenode = (MyTreeNode) node;
if (treenode.getChildren().size() > 0)
{
return false;
}
return true;
}
@Override
public Object getRoot()
{
return myroot;
}
}
class MyTreeNode
{
private String name;
private String description;
private List<MyTreeNode> children = new ArrayList<MyTreeNode>();
public MyTreeNode()
{
}
public MyTreeNode(String name, String description)
{
this.name = name;
this.description = description;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public List<MyTreeNode> getChildren()
{
return children;
}
public String toString()
{
return "MyTreeNode: " + name + ", " + description;
}
}
[/code]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment