gpt4 book ai didi

java - 动态调整窗口大小 swt java

转载 作者:行者123 更新时间:2023-12-02 06:39:56 26 4
gpt4 key购买 nike

这是我希望能够动态调整大小的结果(抱歉我糟糕的 Gimp 技能): enter image description here我查找了不同的 SWT 布局,但没有一个提供我想要的。所以我在 Canvas 上分割了窗口,并将不同的对象插入到 Canvas 上。我知道我的问题来自 .setBounds(),但我没有找到一种方法来自由放置我的对象,这很容易完成。

如何更改代码以动态调整窗口大小但具有类似的结果?

这是一个基本示例:

 public class Main 
{
private void images(Canvas Header)
{
// in Header Canvas located British flag image
imgGbFlag = new Label(Header, SWT.NONE);
imgGbFlag.setBounds(674, 10, 32, 24);
imgGbFlag.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
imgGbFlag.setImage(SWTResourceManager.getImage(Main.class, "/Images/gb.png"));

// in Header Canvas located German flag image
imgDeFlag = new Label(Header, SWT.NONE);
imgDeFlag.setBounds(712, 10, 32, 24);
imgDeFlag.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
imgDeFlag.setImage(SWTResourceManager.getImage(Main.class, "/Images/de.png"));

// in Header Canvas located French flag image
imgFrFlag = new Label(Header, SWT.NONE);
imgFrFlag.setBounds(750, 10, 32, 24);
imgFrFlag.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
imgFrFlag.setImage(SWTResourceManager.getImage(Main.class, "/Images/fr.png"));
}

public void Gui(Shell shell)
{
Canvas header = new Canvas(shell, SWT.NONE);
header.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
header.setBounds(0, 0, 792, 113);
images(header);
}
}

最佳答案

使用 FormLayout 进行动态调整大小,这是解决调整大小问题的最佳且易于使用的布局。您需要将 shell 和 Canvas 对象的布局设置为 formlayout,以便您可以实际以 % 的形式决定所有小部件的位置和大小,而不是硬编码。

您在 setBounds 方法中给出了硬编码值,请尽量避免使用它们,否则您将始终面临调整大小的问题。

关于java - 动态调整窗口大小 swt java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19244427/

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