Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对表重新排序_Java_Swt - Fatal编程技术网

Java 如何对表重新排序

Java 如何对表重新排序,java,swt,Java,Swt,我正在学习与SWT合作。 我使用以下方法将两个表添加到一个复合表中: TabFolder tabFolder = new TabFolder(shell, SWT.NONE); tabFolder.setLayoutData(BorderLayout.CENTER); TabItem tbtmData = new TabItem(tabFolder, SWT.NONE); tbtmData.setText("data"); scrolledCompos

我正在学习与SWT合作。 我使用以下方法将两个
表添加到一个
复合表中:

    TabFolder tabFolder = new TabFolder(shell, SWT.NONE);
    tabFolder.setLayoutData(BorderLayout.CENTER);

    TabItem tbtmData = new TabItem(tabFolder, SWT.NONE);
    tbtmData.setText("data");

    scrolledComposite = new ScrolledComposite(tabFolder, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    tbtmData.setControl(scrolledComposite);
    scrolledComposite.setExpandHorizontal(true);
    scrolledComposite.setExpandVertical(true);

    tableComposite = new Composite(scrolledComposite, SWT.NONE);
    RowLayout rl_tableComposite = new RowLayout(SWT.HORIZONTAL);
    tableComposite.setLayout(rl_tableComposite);

    table_2 = new Table(tableComposite, SWT.BORDER | SWT.FULL_SELECTION);
    table_2.setHeaderVisible(true);
    table_2.setLinesVisible(true);

    table_3 = new Table(tableComposite, SWT.BORDER | SWT.FULL_SELECTION);
    table_3.setLayoutData(new RowData(261, 45));
    table_3.setTopIndex(1);
    table_3.setHeaderVisible(true);
    table_3.setLinesVisible(true);



    scrolledComposite.setContent(tableComposite);
    scrolledComposite.setMinSize(tableComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));

    TabItem tbtmGraph = new TabItem(tabFolder, SWT.NONE);
    tbtmGraph.setText("graph");

    Canvas canvas = new Canvas(tabFolder, SWT.NONE);
    tbtmGraph.setControl(canvas);
现在,在窗口中,我看到左侧的
表2
,右侧的
表3
。如何在运行时更改顺序?在我的例子中,首先添加表3不是一个选项

还有一个问题。如果我调用
table.setSize(0,0)我看不到表外观有任何变化。在此之后,我尝试调用
table.redraw()
,但表的大小仍然没有改变。我的错在哪里?

你可以打电话:

tableThree.moveAbove(tableTwo);
有关更多详细信息,请参阅

关于你的第二个问题:


为什么要将大小设置为
0
?不起作用吗?

什么是
表格
是另一个窗口吗?嗯……表格是SWT小部件。它来自org.eclipse.swt.widgets.Table@PauliusM您使用的是什么
Layout
?水平
RowLayout
。我用更多的代码更新了这个问题。@PauliusM你试过我的答案吗?是的,
tableThree.moveover(tableThree)
很好用。我想将表大小设置为零,这样其他控件就可以占用表先前占用的空间。当我尝试使用
setVisible(false)
@PauliusM时,它不会发生。这个问题已经得到了回答。此外,如果您不再需要
dispose()
,您可以简单地对其进行
dispose()
处理。我通过使用您提供的链接中的代码来实现
的理想行为。谢谢你的帮助@我没问题,如果我能帮上忙,我也很高兴:)