swt中弹出菜单复选框的问题

编程界明世隐
Java领域优质创作者
博客专家认证
2008-04-16 10:38:02
我的shell中有一个树
对 树有右键弹出菜单功能
菜单里面有几个子菜单
要对子菜单进行复选
有一个普通的可以用
当你选中后前面会有个勾

它的代码如下:

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;

public class Snippet89 {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
Menu menu = new Menu(shell,SWT.POP_UP);
for (int i = 0; i < 4; i++) {
MenuItem item = new MenuItem(menu, SWT.CHECK);
item.setText("Item " + i);
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
MenuItem item = (MenuItem) e.widget;
if (item.getSelection()) {
System.out.println(item + " selected");
} else {
System.out.println(item + " unselected");
}
}
});
}
shell.setMenu(menu);
shell.setSize(300, 300);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
但是我的这个怎么弄都不行
我是参照着代码来的
怎么就不行呢 ?


我的关键代码如下:


sourceTree.addListener(SWT.MenuDetect, new Listener() {
public void handleEvent(Event event) {
//下面是弹出菜单
final Display display = Display.getDefault();
Menu menu = new Menu(display.getActiveShell(),SWT.POP_UP);
for (int i = 0; i < 4; i++) {
MenuItem item = new MenuItem(menu, SWT.CHECK);
item.setText("Item " + i);
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
MenuItem item = (MenuItem) e.widget;
if (item.getSelection()) {
System.out.println(item + " selected");
} else {
System.out.println(item + " unselected");
}
}
});
}
menu.setLocation(display.getCursorLocation());
menu.setVisible(true);
}
});


请大家帮我看看,非常感谢!!!!
...全文
615 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
给树加了一个右键监听事件
在树上点右键就有个弹出菜单
在弹出菜单里面选择其中的子菜单要有复选的效果啊
选中的会有个小勾啊
  • 打赏
  • 举报
回复
cpoysy 2008-04-16
你把这行代码放在sourceTree.addListener里面做什么用的呀,sourceTree又是什么东东.?
  • 打赏
  • 举报
回复
发帖
Java SE

6.2w+

社区成员

Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
帖子事件
创建了帖子
2008-04-16 10:38
社区公告
暂无公告