gpt4 book ai didi

java - 在应用程序运行时,在 Java SWT 应用程序中添加/删除按钮。

转载 作者:行者123 更新时间:2023-12-02 07:47:53 24 4
gpt4 key购买 nike

我正在编写一个用于操作自定义 sqlite 数据库的应用程序。DB相当复杂,它具有树状结构。

main
--->operator1
------>name
------>address
--->operator2
------>name
------>address
------>tariffs
---------->name
---------->price

我需要有类似“路径”的东西,以便轻松浏览表并编辑内容...我的数据被组织为 SWT 表。我附加了 SWT.MouseDoubleClick 监听器。我打算通过双击特定的表行来“步入”我的运算符(operator)数据。问题是,如何返回“主视图”,我需要某种导航来实现此目的。我当前的想法是创建一个容器并向其中添加必要的按钮。类似于

nautilus

注意,路径被创建为连续的按钮,水平对齐:

mentis -> Dropbox -> Photos

最大的问题是如何做到这一点;)

我可以创建一个按钮并将其添加到可能的容器中,但这仅在应用程序启动时才有效。我不知道如何在应用程序运行时向我的容器添加按钮。

在我的主课中,我有这样的内容:

    Composite pathBarContainer = new Composite(shell, SWT.BORDER);
pathBarContainer.setSize(shell.getBounds().width, 20);
pathBarContainer.setLayout(new FillLayout(SWT.HORIZONTAL));
GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
gridData.horizontalSpan = 3;
pathBarContainer.setLayoutData(gridData);

pathBar = new PathBar(pathBarContainer, shell, contentProvider);
pathBar.getPathBar();

这是我的 PathBar 类:

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;

public class PathBar {

Composite parent;
Composite pathBar;
Shell mainShell;
ContentProvider contentProvider;
Button mainButton;
Button nextButton;

public PathBar(Composite parent_in, Shell mainShell_in, ContentProvider cp) {

parent = parent_in;
mainShell = mainShell_in;
contentProvider = cp;


pathBar = new Composite(parent, SWT.BORDER_DOT);
//pathBar.setSize(100, 300);
pathBar.setLayout(new GridLayout(10, true));

mainButton = new Button(pathBar, SWT.PUSH);
mainButton.setText("main");

}

public Composite getPathBar() {



return pathBar;
}

public void addMainButton() {
mainButton = new Button(pathBar, SWT.PUSH);
mainButton.setText("main");
pathBar.redraw();
//parent.redraw();
//mainShell.redraw();
}

public void addButton() {
nextButton = new Button(pathBar, SWT.PUSH);
nextButton.setText("sth");
pathBar.redraw();
parent.redraw();
System.out.println("addButton");
}
}

方法 addMainButton() 和 addButton() 应该从 eventHandler 运行...附加到我的 SWT 表...

如何解决这个问题?请帮助:)

最佳答案

添加按钮后,您需要告诉它重做布局。

pathBar.layout(true);

关于java - 在应用程序运行时,在 Java SWT 应用程序中添加/删除按钮。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10587892/

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