Java by API/org.eclipse.swt.widgets/Tree
Содержание
new Tree(Composite parent, int style)
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; public class MainClass {
public static void main(String[] a) { final Display d = new Display(); final Shell s = new Shell(d); s.setSize(250, 200); s.setText("A Table Shell Example"); s.setLayout(new FillLayout()); Tree t = new Tree(s, SWT.SINGLE | SWT.BORDER); TreeItem child1 = new TreeItem(t, SWT.NONE, 0); child1.setText("1"); TreeItem child2 = new TreeItem(t, SWT.NONE, 1); child2.setText("2"); TreeItem child2a = new TreeItem(child2, SWT.NONE, 0); child2a.setText("2A"); TreeItem child2b = new TreeItem(child2, SWT.NONE, 1); child2b.setText("2B"); TreeItem child3 = new TreeItem(t, SWT.NONE, 2); child3.setText("3"); s.open(); while (!s.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); }
}
</source>
Tree: addKeyListener(KeyListener lis)
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.custom.TreeEditor; import org.eclipse.swt.events.FocusAdapter; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.KeyAdapter; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; public class MainClass {
public static void main(String[] a) { final Display d = new Display(); final Shell shell = new Shell(d); shell.setSize(250, 200); shell.setLayout(new FillLayout()); final Tree tree = new Tree(shell, SWT.SINGLE); for (int i = 0; i < 3; i++) { TreeItem iItem = new TreeItem(tree, SWT.NONE); iItem.setText("Edit me by pressing F2 " + (i + 1)); iItem.setExpanded(true); } final TreeEditor editor = new TreeEditor(tree); editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; tree.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if (event.keyCode == SWT.F2 && tree.getSelectionCount() == 1) { final TreeItem item = tree.getSelection()[0]; final Text text = new Text(tree, SWT.NONE); text.setText(item.getText()); text.setFocus(); text.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent event) { item.setText(text.getText()); text.dispose(); } }); editor.setEditor(text, item); } } }); shell.open(); while (!shell.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); }
}
</source>
Tree: addSelectionListener(SelectionListener lis)
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.TreeEvent; import org.eclipse.swt.events.TreeListener; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; public class MainClass {
public static void main(String[] a) { final Display d = new Display(); final Shell s = new Shell(d); s.setSize(250, 200); s.setText("A Tree Shell Example"); s.setLayout(new FillLayout(SWT.HORIZONTAL)); final Tree t = new Tree(s, SWT.SINGLE | SWT.BORDER); final TreeItem child1 = new TreeItem(t, SWT.NONE, 0); child1.setText("1");
// child1.setImage(new Image(d, "c:\\icons\\folder.gif"));
final TreeItem child2 = new TreeItem(t, SWT.NONE, 1); child2.setText("2"); final TreeItem child2a = new TreeItem(child2, SWT.NONE, 0); child2a.setText("2A"); final TreeItem child2b = new TreeItem(child2, SWT.NONE, 1); child2b.setText("2B"); final TreeItem child3 = new TreeItem(t, SWT.NONE, 2); child3.setText("3"); final List l = new List(s, SWT.BORDER | SWT.SINGLE); t.addTreeListener(new TreeListener() { public void treeExpanded(TreeEvent e) { TreeItem ti = (TreeItem) e.item; // ti.setImage(new Image(d, "c:\\icons\\open.gif")); } public void treeCollapsed(TreeEvent e) { TreeItem ti = (TreeItem) e.item;
// ti.setImage(new Image(d, "c:\\icons\\folder.gif"));
} }); t.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TreeItem ti = (TreeItem) e.item; populateList(ti.getText()); } private void populateList(String type) { if (type.equals("1")) { l.removeAll(); l.add("1"); l.add("2"); } if (type.equals("2")) { l.removeAll(); } if (type.equals("2A")) { l.removeAll(); l.add("3"); l.add("4"); } if (type.equals("2B")) { l.removeAll(); l.add("5"); l.add("6"); } if (type.equals("3")) { l.removeAll(); l.add("7"); l.add("8"); } } }); s.open(); while (!s.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); }
}
</source>
Tree: addTreeListener(TreeListener lis)
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.TreeEvent; import org.eclipse.swt.events.TreeListener; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; public class MainClass {
public static void main(String[] a) { final Display d = new Display(); final Shell s = new Shell(d); s.setSize(250, 200); s.setText("A Tree Shell Example"); s.setLayout(new FillLayout(SWT.HORIZONTAL)); final Tree t = new Tree(s, SWT.SINGLE | SWT.BORDER); final TreeItem child1 = new TreeItem(t, SWT.NONE, 0); child1.setText("1");
// child1.setImage(new Image(d, "c:\\icons\\folder.gif"));
final TreeItem child2 = new TreeItem(t, SWT.NONE, 1); child2.setText("2"); final TreeItem child2a = new TreeItem(child2, SWT.NONE, 0); child2a.setText("2A"); final TreeItem child2b = new TreeItem(child2, SWT.NONE, 1); child2b.setText("2B"); final TreeItem child3 = new TreeItem(t, SWT.NONE, 2); child3.setText("3"); final List l = new List(s, SWT.BORDER | SWT.SINGLE); t.addTreeListener(new TreeListener() { public void treeExpanded(TreeEvent e) { TreeItem ti = (TreeItem) e.item; // ti.setImage(new Image(d, "c:\\icons\\open.gif")); } public void treeCollapsed(TreeEvent e) { TreeItem ti = (TreeItem) e.item;
// ti.setImage(new Image(d, "c:\\icons\\folder.gif"));
} }); t.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TreeItem ti = (TreeItem) e.item; populateList(ti.getText()); } private void populateList(String type) { if (type.equals("1")) { l.removeAll(); l.add("1"); l.add("2"); } if (type.equals("2")) { l.removeAll(); } if (type.equals("2A")) { l.removeAll(); l.add("3"); l.add("4"); } if (type.equals("2B")) { l.removeAll(); l.add("5"); l.add("6"); } if (type.equals("3")) { l.removeAll(); l.add("7"); l.add("8"); } } }); s.open(); while (!s.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); }
}
</source>
Tree: getSelection()
<source lang="java">
import org.eclipse.swt.SWT; import org.eclipse.swt.custom.TreeEditor; import org.eclipse.swt.events.FocusAdapter; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.KeyAdapter; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; public class MainClass {
public static void main(String[] a) { final Display d = new Display(); final Shell shell = new Shell(d); shell.setSize(250, 200); shell.setLayout(new FillLayout()); final Tree tree = new Tree(shell, SWT.SINGLE); for (int i = 0; i < 3; i++) { TreeItem iItem = new TreeItem(tree, SWT.NONE); iItem.setText("Edit me by pressing F2 " + (i + 1)); iItem.setExpanded(true); } final TreeEditor editor = new TreeEditor(tree); editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; tree.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if (event.keyCode == SWT.F2 && tree.getSelectionCount() == 1) { final TreeItem item = tree.getSelection()[0]; final Text text = new Text(tree, SWT.NONE); text.setText(item.getText()); text.setFocus(); text.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent event) { item.setText(text.getText()); text.dispose(); } }); editor.setEditor(text, item); } } }); shell.open(); while (!shell.isDisposed()) { if (!d.readAndDispatch()) d.sleep(); } d.dispose(); }
}
</source>