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