SWT的LABEL如何垂直居中,不是垂直显示,找了很多帖都没有真正解决,重绘是最后考虑的事情,麻烦达人帮忙

解决方案 »

  1.   

    是LABEL的文字上下居中,补充下
      

  2.   

    将LABEL的格式加上SWT.CENTER,不知道这样可以不,应该可以使文字居中
      

  3.   

    你的意思是label上的文字垂直排列对吧,我记得可以用html实现,label是支持html的,你可以试试,
     JLabel jLabel = new JLabel("<html><body>" + df.format(ToolsClass.pelsToMM(Float.valueOf(zSTemplateInfo.spacingH.get(2 * i * zSTemplateInfo.col - zSTemplateInfo.col + j)))) + "<br>" + df.format(ToolsClass.pelsToMM(Float.valueOf(zSTemplateInfo.spacingH.get(2 * i * zSTemplateInfo.col + j)))) + "</body></html>", JLabel.CENTER);这是我写过的一个语句,懒的精简了,
      

  4.   

    SWT支持Html标签吗? 看清再回复吧最简单的就是\n
      

  5.   

    能不能支持HTML你运行下就晓得了!可以支持的!
      

  6.   

    我用过的,java的GUI是支持html的,你可以试试,不支持的话,我不会说的,
      

  7.   

    本质上来说因为SWT底下的Windows System如win32 api/GTK等不支持导致swt不支持,不过你可以自己画或者变通一下吧,看示例代码:        Display display = new Display ();
            Shell shell = new Shell (display);
            shell.setLayout(new FillLayout());
           
            Composite composite = new Composite(shell, SWT.NONE);
            GridLayout layout = new GridLayout();
            layout.numColumns = 2;
            layout.makeColumnsEqualWidth = true;
            composite.setLayout(layout);
           
            Label label = new Label(composite, SWT.NONE);
            label.setBackground(display.getSystemColor(SWT.COLOR_RED));
            label.setText("Not vertical align");
            GridData labelGridData = new GridData();
            labelGridData.verticalAlignment = SWT.BEGINNING;
            labelGridData.grabExcessVerticalSpace = true;
            labelGridData.horizontalAlignment = SWT.CENTER;
            label.setLayoutData(labelGridData);
           
            Label labelVerticalyAligned = new Label(composite, SWT.NONE);
            labelVerticalyAligned.setBackground(display.getSystemColor(SWT.COLOR_CYAN));
            labelVerticalyAligned.setText("Vertical align");
            GridData labelVerticalyAlignedGridData = new GridData();
            labelVerticalyAlignedGridData.verticalAlignment = SWT.CENTER;
            labelVerticalyAlignedGridData.grabExcessVerticalSpace = true;
            labelVerticalyAlignedGridData.horizontalAlignment = SWT.CENTER;
            labelVerticalyAligned.setLayoutData(labelVerticalyAlignedGridData);
           
            shell.setSize(250, 300);
            shell.open ();
            while (!shell.isDisposed ()) {
                if (!display.readAndDispatch ()) display.sleep ();
            }
            display.dispose ();