3

この質問がばかげている場合は申し訳ありませんが、これを行うための何かがネット上で見つかりませんでした。

項目を無効にしたくありませんが、メニュー項目リスト全体をクリアします。

何か助けてください?

4

2 に答える 2

5

ちょうど:dispose()_MenuItem

public static void main(String[] args)
{
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("StackOverflow");
    shell.setLayout(new FillLayout());

    Menu menu = new Menu(shell, SWT.BAR);

    MenuItem item = new MenuItem(menu, SWT.CASCADE);
    item.setText("Menu");

    Menu submenu = new Menu(shell, SWT.DROP_DOWN);
    item.setMenu(submenu);

    for(int i = 0; i < 10; i++)
    {
        final MenuItem newItem = new MenuItem(submenu, SWT.NONE);
        newItem.setText("Item " + i);

        newItem.addListener(SWT.Selection, new Listener()
        {
            @Override
            public void handleEvent(Event arg0)
            {
                newItem.dispose();
            }
        });
    }

    shell.setMenuBar(menu);

    shell.pack();
    shell.setSize(400, 250);
    shell.open();
    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}
于 2013-07-30T06:25:13.667 に答える
5

これは、メニューからすべての項目をクリアする方法です。

for (MenuItem item : menu.getItems()) {
    item.dispose()
}
于 2013-07-30T19:35:15.640 に答える