//树
tree = new Tree(CITY, SWT.CHECK | SWT.BORDER );
//父节点
TreeItem child1 = new TreeItem(tree, SWT.NONE);
child1.setText("ADD");
//子节点
TreeItem sub = new TreeItem(child1 , SWT.NONE);
sub.setText("1");现在要获取父节点child1的复选框的选中事件,请问怎么做?
TreeItem没有选中事件。
不使用TreeView等控件。
很急,希望高手帮忙。谢谢。
能否写一个简单的demo,大家好根据这个demo进行修改.查看问题...
{
private Tree tree;
protected Object result;
protected Shell shell;
private TreeItem child1;
private TreeItem child2;
private TreeItem child3;
public CommonDlg(Shell parent, int style)
{
super(parent, style);
}
public CommonDlg(Shell parent)
{
this(parent, SWT.NONE);
}
public Object open()
{
createContents();
shell.open();
shell.layout();
Display display = getParent().getDisplay();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
return result;
}
protected void createContents()
{
shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
shell.setSize(743, 579);
shell.setText(Title);
final TabFolder tabFolder = new TabFolder(shell, SWT.NONE);
tabFolder.setBounds(20, 10, 704, 498);
final TabItem Item = new TabItem(tabFolder, SWT.NONE);
Site_Item.setText("AAA");
final Group BBB = new Group(tabFolder, SWT.NONE);
Site_Item.setControl(Item);
tree = new Tree(BBB, SWT.CHECK | SWT.BORDER);
tree.setLinesVisible(true);
tree.setHeaderVisible(true);
tree.setBounds(0, 21, 344, 447);
TreeColumn nameTreeColumn;
nameTreeColumn = new TreeColumn(tree, SWT.CENTER);
nameTreeColumn.setText("Key");
nameTreeColumn.setWidth(130);
TreeColumn nameTreeColumn1;
nameTreeColumn1 = new TreeColumn(tree, SWT.CENTER);
nameTreeColumn1.setText("Value");
nameTreeColumn1.setWidth(212);
TreeItem sub = new TreeItem(child1 , SWT.NONE);
sub.setText("1");
child2 = new TreeItem(tree, SWT.NONE);
child2.setForeground(0, Display.getCurrent().getSystemColor(SWT.COLOR_DARK_RED));
child2.setText("delete");
child3 = new TreeItem(tree, SWT.NONE);
child3.setForeground(0, Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GREEN));
child3.setText("modify");
}
}
着急啊。
child1.getChecked();
可以判断勾选,半勾选,不勾选三种状态
自己添加监听事件 public static void main(String[] args)
{
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("Tree Sample");
shell.setLayout(new FillLayout()); final Tree tree = new Tree(shell, SWT.BORDER | SWT.SINGLE);
TreeItem root = new TreeItem(tree, SWT.NULL);
root.setText("根节点"); TreeItem child1 = new TreeItem(root, SWT.NULL);
child1.setText("子孙1"); tree.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
System.out.println(arg0.item.toString());
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
System.out.println(arg0.item.toString());
}
});
shell.setSize(200, 150);
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
} display.dispose();
}
{
@Override
public void widgetSelected(final SelectionEvent e)
{
TreeItem ti = (TreeItem)e.item;
if (ti.equals(child1))
{
if (child1.getChecked())
{
setTreeItemAllCheck(child1);
}
else
{
setTreeItemAllDisCheck(child1);
}
return;
}
if (ti.equals(child2))
{
if (child2.getChecked())
{
setTreeItemAllCheck(child2);
}
else
{
setTreeItemAllDisCheck(child2);
}
return;
}
if (ti.equals(child3))
{
if (child3.getChecked())
{
setTreeItemAllCheck(child3);
}
else
{
setTreeItemAllDisCheck(child3);
}
return;
}
}
});
2. 提供简单的demo是别人定位,修改,查找问题最快捷的方式。不然别人还得自己写一个demo来测试问题。