2014-04-29 3 views
0

모든 도움에 대해 미리 감사드립니다.StyledLabel의 텍스트가 잘림

나는 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); 

버튼에 표시되는 유일한 것을 제외하고 모두 잘 작동합니다. 나머지는 잘 렸습니다. 나머지는 잘 렸습니다.

패널, 프레임 및 레이블에 preferredSize을 설정하려했지만 아무 효과가 없습니다. 도움이 필요합니다.

+0

:

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(); } 

는 다음과 같습니다 : 여기

은 예입니다. 대신에'Layout'을 사용해야합니다. [this] (http://www.eclipse.org/articles/article.php?file=Article-Understanding-Layouts/index.html)을 읽으십시오. – Baz

+0

제거하려고했지만 여전히 작동하지 않습니다. –

+0

이제 레이아웃을 사용 하시겠습니까? – Baz

답변

1

코드가 전혀 컴파일되지 않습니다. 또한 내장 프레임을 만들려면 SWT_AWT.new_Frame(Composite)을 사용해야합니다. 명시 적으로 64 × 64로`Composite`의 크기를 설정하고 있기 때문에 아마

enter image description here

+0

내 코드가 컴파일되고 실행됩니다. StyledLabel의 전체 텍스트를 보는 데 문제가 있습니다. "Clear Sessio"에서 텍스트가 자릅니다. 부모 컴포지트를 수정할 수 없으므로 레이아웃을 변경할 수 없습니다. –

+0

@MichealNoel'sessionComposite.setLayout (0,0,64,64);'컴파일되지 않고,'SWT_EMBEDDED'와'SWT_BORDER'가 정의되지 않았습니다.'Flowlayout.LEFT'는'FlowLayout.LEFT'이어야합니다 ... 내 코드를 시도 했니? – Baz

+0

"SWT_AWT.new_Frame (Composite)"이 있습니다. 그냥 오타입니다. 모든 것이 컴파일됩니다. 내가이 스레드에 내 코드를 복사/붙여 넣을 수 있었으면 좋겠다.하지만 나는 두 개의 분리 된/환경 컴퓨터에있다. –