gpt4 book ai didi

java - 如何制作外观和行为类似于单个表头的 SWT 组件

转载 作者:行者123 更新时间:2023-12-04 05:23:15 27 4
gpt4 key购买 nike

我试图找到一种方法来制作一个看起来像 native 表头组件的 SWT 组件,所以在 Windows 7 中:

Windows 7 Column Header

我也希望它具有与 native 组件相同的悬停行为。

我曾考虑过使用带有一列的实际表格,但我无法仅使用标题来填充整个组合。这是我一直在使用的代码:

package widgets;

import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.StyledCellLabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class TableHeaderButton extends Composite {

public TableHeaderButton(Composite parent) {
super(parent, SWT.NONE);
this.setLayout(new GridLayout(1, true));
makeTable(this);
}

private static TableViewer makeTable(Composite parent) {
TableViewer viewer = new TableViewer(parent, SWT.FULL_SELECTION
| SWT.H_SCROLL | SWT.V_SCROLL | SWT.NONE);

viewer.setContentProvider(ArrayContentProvider.getInstance());

viewer.getTable().setLayoutData(
new GridData(SWT.FILL, SWT.FILL, false, false));

TableViewerColumn col = new TableViewerColumn(viewer, SWT.NONE);
col.getColumn().setWidth(100);
col.getColumn().setText("Text Column");

viewer.getTable().setHeaderVisible(true);

return viewer;
}

public static void main(String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new GridLayout(1, true));

new TableHeaderButton(shell);

shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}

}

任何帮助将不胜感激。

最佳答案

您是否尝试过使用 TableColumnLayout ?

  TableColumnLayout tableColumnLayout = new TableColumnLayout();
yourcomposite.setLayout(tableColumnLayout);
tableColumnLayout.setColumnData(youcolumn, new ColumnWeightData(100, true));

有关更多信息,请查看:

Official doc

An example of use to TableLayout

关于java - 如何制作外观和行为类似于单个表头的 SWT 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13490345/

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