Tablo boş olsa bile, her zaman dikey kaydırma çubuğunu bir SWT tablosunda göstermek mümkün mü? Her zaman bir (olası devre dışı bırakılmış) dikey kaydırma çubuğunu göstererek, sütunlar, düzen için ColumnWeightData
kullandığında son sütunun gizlenmesini engelleyebilir. Tabloyu SWT.V_SCROLL
ile başlatmayı veya table.getVerticalBar().setVisible(true)
'u kullanmayı denedim - her ikisi de başarılı olmaksızın.SWT tablosunda her zaman dikey kaydırma çubuğu nasıl gösterilir?
ScrollableComposite
'da setAlwaysShowScrollBars
yöntemi vardır. Aradığım şey, Table
'da benzer bir yöntemdir.
GÜNCELLEME: ben tablo yeterli veriyi içerdiğinde görülebilir kaydırma çubukları bu kaydırma çubukları Table
devralır Scrollable
den olmadığını varsayalım. ScrollBar.setVisible(boolean)
hata ayıklandı ve tablo düzeni güncelleştirmelerinde çağrılmıyor gibi görünüyor. Bu gözlem doğru mu?
UPDATE 2: İşte bir masa yapımı için bir parçacık. Tablo boş olsa bile dikey kaydırma çubuğunun görünür olması ve tablo verileri aşağı kaydırılsa bile sütun başlıklarının görünür olması harika olacaktır. Not: Pasaj, etiket sağlayıcısı ve aynı ana bileşikte düzenlenmiş bazı diğer kontroller gibi bazı ayrıntıları dışarıda bırakmıştır.
protected void createMasterPart(final IManagedForm managedForm, Composite parentComposite)
{
FormToolkit toolkit = managedForm.getToolkit();
Composite contentComposite = toolkit.createComposite(parentComposite, SWT.NONE);
contentComposite.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1));
toolkit.paintBordersFor(contentComposite);
contentComposite.setLayout(new GridLayout(2, false));
GridData gd;
Composite tableComposite = new Composite(contentComposite, SWT.NONE);
TableColumnLayout tableColumnLayout = new TableColumnLayout();
tableComposite.setLayout(tableColumnLayout);
gd = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 3);
tableComposite.setLayoutData(gd);
speakerTableViewer = new TableViewer(tableComposite, SWT.BORDER | SWT.FULL_SELECTION);
speakerTableViewer.setContentProvider(ArrayContentProvider.getInstance());
Table speakerTable = speakerTableViewer.getTable();
speakerTable.setHeaderVisible(true);
speakerTable.setLinesVisible(true);
toolkit.paintBordersFor(speakerTable);
TableViewerColumn tableViewerAudiosampleColumn = new TableViewerColumn(speakerTableViewer, SWT.NONE);
TableColumn audiosampleColumn = tableViewerAudiosampleColumn.getColumn();
tableColumnLayout.setColumnData(audiosampleColumn, new ColumnWeightData(60, true));
audiosampleColumn.setText("Sample");
TableViewerColumn tableViewerSpeakerColumn = new TableViewerColumn(speakerTableViewer, SWT.NONE);
TableColumn speakerColumn = tableViewerSpeakerColumn.getColumn();
tableColumnLayout.setColumnData(speakerColumn, new ColumnWeightData(60, true));
speakerColumn.setText("Speaker");
TableViewerColumn tableViewerRemarkColumn = new TableViewerColumn(speakerTableViewer, SWT.NONE);
TableColumn remarkColumn = tableViewerRemarkColumn.getColumn();
tableColumnLayout.setColumnData(remarkColumn, new ColumnWeightData(120, true));
remarkColumn.setText("Remark");
}
Tablonuzu panelin içine sarın. – Makky
@Makky “Panel” ile ne demek istiyorsun? – Claude
Neden boş bir veri tablosu için kaydırma çubuğunu görüntülüyorsunuz? – Makky