StyledLabel上的文本被截断

时间:2014-04-29 13:58:28

标签: java swing awt swt

全部,提前感谢所有帮助。

我正在混合一些SWT和摇摆。这是代码:

Composite sessionComposite = new Composite(parent, SWT_EMBEDDED | SWT_BORDER);
sessionComposite.setLayout(0,0,64,64);

Frame frame = new Frame(sessionComposite);
frame.setLayout(new BorderLayout());

JPanel panel = new JPanel(new FlowLayout(Flowlayout.LEFT)));
frame.add(panel);


StyledLabel btnClearHistory = new StyledLabel("Clear Session History"); 

// some mouse listeners etc...

panel.add(btnClearHistory);

一切正常,除了按钮上显示的唯一内容是" Clear Sessio"其余的被截断了。

我尝试在面板,框架和标签上设置preferredSize,但没有任何效果。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的代码根本无法编译。此外,您需要使用SWT_AWT.new_Frame(Composite)来创建嵌入式框架。

以下是一个例子:

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

    Composite sessionComposite = new Composite(shell, SWT.EMBEDDED | SWT.BORDER);

    Frame frame = SWT_AWT.new_Frame(sessionComposite);
    frame.setLayout(new BorderLayout());

    JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
    frame.add(panel);

    JButton button = new JButton("Clear Session History"); 
    panel.add(button);

    shell.pack();
    shell.setSize(400,200);
    shell.open();

    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
        {
            display.sleep();
        }
    }
    display.dispose();
}

看起来像这样:

enter image description here