سؤال

أحاول تضمين jface TableViewer في SWT Tabfolder, ، ولكن عندما أفعل ذلك ، لا يظهر الجدول. الحالي (رمز العمل) في بلدي جيتودو الرمز يبدو (انظر هذا git repos):

    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Git ToDo");
    FillLayout layout = new FillLayout();
    shell.setLayout(layout);

    final GitToDoTree tableViewer = new GitToDoTree(shell);

حيث الأخير Gittodotree يمتد TableViewer, ، مع هذا المنشئ:

    super(parent, SWT.SINGLE | SWT.FULL_SELECTION | SWT.FILL);
    this.shell = parent;
    table = this.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

لذلك ، عندما أقوم ببناء Gittodotree-تمتد على مستوى TableViewer من قذيفة ، ولكن بمجرد أن أحاول بناءها من علامة تبويب أو (جربت ذلك أيضًا) مركبًا ، لا شيء يظهر بعد الآن.

كيف يمكنني الحصول على TableViewer الخاص بي للظهور في Tabfolder؟

هل كانت مفيدة؟

المحلول

إذا لم تظهر فئة TableViewer الخاصة بك عند إضافتها إلى Composite أود أن أقول أن هناك احتمالات أنك لا تحدد تخطيطًا للمتداخلة Composite.

final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("Git ToDo");
FillLayout layout = new FillLayout();
shell.setLayout(layout);

Composite composite = new Composite(shell, SWT.NONE);
composite.setLayout(new FillLayout()); // Possible missing layout?

final GitToDoTree tableViewer = new GitToDoTree(composite);

أما بالنسبة لعلامة التبويب التي قد تكون أنك لا تقوم بتعيين عنصر تحكم العميل على TabItem

TabFolder tabFolder = new TabFolder(shell, SWT.NONE);
TabItem item = new TabItem(tabFolder, SWT.NONE);
item.setText("Table");

GitToDoTree viewer = new GitToDoTree(tabFolder);
item.setControl(viewer.getTable()); // Possible setControl call?

TabItem item2= new TabItem(tabFolder, SWT.NONE);
item2.setText("Empty");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top