需要用swt做个下拉菜单(类似word和写字板中用于更改字体的下拉菜单),下拉菜单中是当前系统的所有可用字体 
swt中有现成的控件可以直接调用的吗?或者有什么解决方法或建议?

解决方案 »

  1.   

    so easy~Button btn = new Button(shell,SWT.PUSH);
    btn.setText("tsdt");
    btn.addSelectionListener(new SelectionListener(){
    public void widgetDefaultSelected(SelectionEvent arg0) {
    }
    public void widgetSelected(SelectionEvent arg0) {
    FontDialog dialog = new FontDialog(shell);
    dialog.setRGB(new RGB(255,255,121));
    FontData fontData = dialog.open();
    if(fontData!= null){
    System.out.println(fontData);
    Font font = new Font(display,fontData);
    font.dispose();
    }
    }});
      

  2.   

    问题已解决部份代码如下:private static String[] getSystemFontNames(){
    //取得系统字体列表
    FontData[] fontDatas = (FontData [])Display.getCurrent().getFontList(null, true); SortedSet set = new TreeSet();
    for(int i=0;i<fontDatas.length;i++){
        set.add(fontDatas[i].getName());
    } String[] fonts = new String[set.size()];
    set.toArray(fonts);
    return fonts;
    }
      

  3.   

    在UBUNTU中用FontDialog就只有字体嘛.