在JFace / swt中的多个列中显示MenuItems

时间:2016-06-21 12:00:18

标签: swt jface

我有一个很长的MenuItems列表(> 100)用于弹出菜单,并希望将它们放入多个列而不是默认的1列。 尝试使用以下代码但未成功:

    public class CodeSnippet {

    public static void main (String [] args) {
        Display display = new Display ();
        Shell shell = new Shell (display);
         final Composite c2 = new Composite(shell, SWT.NONE);
         c2.setLayout(new GridLayout(2,true));
         Menu menu = new Menu(c2);
        for (int i=0; i<8; i++) {
            MenuItem item = new MenuItem (menu, SWT.RADIO);
            item.setText ("Item " + i);
        }

        shell.setMenu (menu);
        shell.setSize (300, 300);
        shell.open ();
        while (!shell.isDisposed ()) {
            if (!display.readAndDispatch ()) display.sleep ();
        }
        display.dispose ();
    }

}

尽管为用于菜单的控件提供了gridlayout,但不知道为什么它只显示在单列中。

任何线索都会有所帮助。

1 个答案:

答案 0 :(得分:0)

您无法控制菜单中项目的布局,布局由您平台上的本机代码决定。