Java tutorial
import java.awt.BorderLayout; import java.util.Properties; import java.util.Set; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; public class Main extends JFrame { static String NOTHING_SELECTED = "<nothing selected>"; JScrollPane treeScroll; JTree tree; DefaultTreeModel treeModel; DefaultMutableTreeNode root = new DefaultMutableTreeNode("GIT commands"); JLabel descriptionLabel; Properties properties = new Properties(); public Main() { setLayout(new BorderLayout()); treeModel = new DefaultTreeModel(root); tree = new JTree(treeModel); treeScroll = new JScrollPane(tree); add(treeScroll, BorderLayout.WEST); properties.setProperty("foo1", "bar1"); properties.setProperty("foo2", "bar2"); properties.setProperty("foo3", "bar3"); properties.setProperty("foo4", "bar4"); Set<Object> keySet = properties.keySet(); for (Object key : keySet) { root.add(new DefaultMutableTreeNode(key)); } tree.expandPath(new TreePath(root)); descriptionLabel = new JLabel(NOTHING_SELECTED); add(descriptionLabel, BorderLayout.CENTER); tree.addTreeSelectionListener(e -> { DefaultMutableTreeNode selection = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); if (selection != null) { String key = (String) selection.getUserObject(); String command = properties.getProperty(key); descriptionLabel.setText(command); } else { descriptionLabel.setText(NOTHING_SELECTED); } }); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); } public static void main(String[] args) { new Main().setVisible(true); } }