以下代碼無法正確顯示文本和 long,而是 Record 類的 toString()。public class CodeCheckerPreferencePage extends PreferencePage implements IWorkbenchPreferencePage{ public CodeCheckerPreferencePage() { super( "Code checker statistics" ); } @Override protected Control createContents( Composite parent ) { final TableViewer viewer = new TableViewer( parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER ); viewer.setContentProvider( ArrayContentProvider.getInstance()); viewer.setInput( Stats.getStats().getRecords()); final Table table = viewer.getTable(); table.setHeaderVisible( true ); table.setLinesVisible( true ); final TableViewerColumn colFile = new TableViewerColumn( viewer, SWT.NONE ); colFile.getColumn().setWidth( 400 ); colFile.getColumn().setText( "File" ); colFile.setLabelProvider( new ColumnLabelProvider() { @Override public String getText( Object element ) { return ((Stats.Record)element).getFile(); }}); final TableViewerColumn colConsumed = new TableViewerColumn( viewer, SWT.NONE ); colConsumed.getColumn().setWidth( 80 ); colConsumed.getColumn().setText( "Consumed ms" ); colConsumed.setLabelProvider( new ColumnLabelProvider() { @Override public String getText( Object element ) { return String.format( "%3d", ((Stats.Record)element).getConsumed()); }}); final GridData gridData = new GridData(); gridData.verticalAlignment = GridData.FILL; gridData.horizontalSpan = 2; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; gridData.horizontalAlignment = GridData.FILL; viewer.getControl().setLayoutData(gridData); return table; } @Override public void init(IWorkbench workbench) {/**/}}“文件”列中顯示的文本為“abcStats$Record@750e313c”,“已使用”列中不顯示任何文本。我在“getText”方法中設(shè)置了斷點(diǎn):它們永遠(yuǎn)不會到達(dá)。我的錯(cuò)誤在哪里?
1 回答

慕森卡
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
你必須在打電話之前設(shè)置好桌子的一切,setInput
所以移動(dòng)
viewer.setInput( Stats.getStats().getRecords());
行到方法的末尾。
添加回答
舉報(bào)
0/150
提交
取消