gpt4 book ai didi

java - 如何在SWT中将屏幕分成3部分?

转载 作者:行者123 更新时间:2023-12-02 06:22:36 25 4
gpt4 key购买 nike

我是 SWT 和 java 新手我真的需要帮助。

我需要构建 Eclipse 插件,当您按下按钮时,该插件应该打开一个对话框。

对话框应如下所示

       label 1   textBox1                label 2 textBox 2
label 3 textBox13 label 4 textBox 4


could be alot of them -> should be with scroller


---------------------------------------------------


output ( should be textbox)


-----------------------------------------------------


messages ( should be textbox)

可能有很多标签和文本框,我如何将它们添加到可以容纳很多标签和文本框的控件中? (应该带有滚动条)

如何在 SWT 或 fjace 中将屏幕分成 3 部分?以及如何控制大小,例如第一部分(标签文本框)为 60%,输出为 30%,消息为 10%?

也许你可以帮我举一个例子?

最佳答案

这要求太多代码 - 您应该向我们展示您尝试过的内容!

一些提示:

使用org.eclipse.jface.dialog.Dialog作为对话框,您也可以使用org.eclipse.jface.dialog.TitleAreaDialog,它有一个错误区域消息。

要按百分比分割区域,请使用org.eclipse.swt.custom.SashForm

要在一行上获取多个项目,请使用 org.eclipse.swt.layout.GridLayout 指定列数。

要获取滚动区域,请使用org.eclipse.swt.custom.ScrolledComposite

所以类似:

@Override
protected Control createDialogArea(final Composite parent)
{
Composite body = (Composite)super.createDialogArea(parent);

// Vertical sash

SashForm sashForm = new SashForm(body, SWT.VERTICAL);

sashForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

// First part, scrollable

ScrolledComposite scrolledComp = new ScrolledComposite(sashForm, SWT.V_SCROLL);

Composite comp1 = new Composite(scrolledComp, SWT.NONE);

comp1.setLayout(new GridLayout());

// TODO: add controls to comp1

// Set scroll size - may need to adjust this

Point size = comp1.computeSize(SWT.DEFAULT, SWT.DEFAULT);
scrolledComp.setMinHeight(size.y);
scrolledComp.setMinWidth(size.x);
scrolledComp.setExpandVertical(true);
scrolledComp.setExpandHorizontal(true);

scrolledComp.setContent(comp1);

// Second part

Composite comp2 = new Composite(sashForm, SWT.NONE);

comp2.setLayout(new GridLayout());

// TODO: add controls to comp2

// Third part

Composite comp3 = new Composite(sashForm, SWT.NONE);

comp3.setLayout(new GridLayout());

// TODO: add controls to comp3

// Set the sash weighting (must be after controls are created)

sashForm.setWeights(new int [] {60, 30, 10});

return body;
}

关于java - 如何在SWT中将屏幕分成3部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20885743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com