0
我正在编写一个操作自定义sqlite数据库的应用程序。数据库相当复杂,它具有树状结构。在应用程序运行时,在java SWT应用程序中添加/删除按钮。
main
--->operator1
------>name
------>address
--->operator2
------>name
------>address
------>tariffs
---------->name
---------->price
我需要类似'路径'的东西,以便轻松浏览表格和编辑东西......我的数据被组织为SWT表。我有SWT.MouseDoubleClick侦听器附加到它。我打算通过双击特定的表格行来“进入”我的操作员数据。问题是,如何回到“主视图”,我需要某种类型的导航。 我目前的想法是创建一个容器并在其中添加必要的按钮。类似
通知,路径创建为连续按键,水平对齐:
mentis -> Dropbox -> Photos
最大的问题是如何做到这一点;)
我能够创造一个按钮并将其添加到may容器,但是这仅在应用程序启动时才起作用。我不知道如何在应用程序运行时向我的容器添加按钮。
在我的主类我有某事像这样:
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()和Add按钮()都应该是从事件处理程序运行。 ..附在我的SWT桌上...
如何解决这个问题? 请帮助:)
它的工作原理:D谢谢:) – mentis