Adicionando componentes SWT nas células de uma tabela

Veja nesta dica como adicionar ComboBox, CheckBox, e outros componentes em uma tabela.

Adicionando componentes SWT nas células de uma tabela

 

Algumas vezes é preciso utilizar componentes SWT dentro das células de uma tabela, e isto pode ser feito através de org.eclipse.swt.custom.TableEditor.


 

Exemplo

 

A seguir está o código da imagem apresentada onde são adicionados CheckBox e ComboBox dentro de células de uma tabela.

 

Código de implementação

 

private void createTable() {

<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >Table table = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >Table(top, SWT.NONE);</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >table.setHeaderVisible(</SPAN><B><SPAN lang=EN-US >true</SPAN></B><SPAN lang=EN-US >);</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >table.setLinesVisible(</SPAN><B><SPAN lang=EN-US >true</SPAN></B><SPAN lang=EN-US >);</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >table.setBounds(</SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >org.eclipse.swt.graphics.Rectangle(</SPAN><SPAN lang=EN-US >47</SPAN><SPAN lang=EN-US >,</SPAN><SPAN lang=EN-US >67</SPAN><SPAN lang=EN-US >,</SPAN><SPAN lang=EN-US >190</SPAN><SPAN lang=EN-US >,</SPAN><SPAN lang=EN-US >70</SPAN><SPAN lang=EN-US >));</SPAN>

<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >TableColumn tableColumn = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >TableColumn(table, SWT.NONE);</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >tableColumn.setWidth(</SPAN><SPAN lang=EN-US >100</SPAN><SPAN lang=EN-US >);</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >tableColumn.setText(</SPAN><SPAN lang=EN-US >"Check Column"</SPAN><SPAN lang=EN-US >);</SPAN>

<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >TableColumn tableColumn1 = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >TableColumn(table, SWT.NONE);</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >tableColumn1.setWidth(</SPAN><SPAN lang=EN-US >100</SPAN><SPAN lang=EN-US >);</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >tableColumn1.setText(</SPAN><SPAN lang=EN-US >"Combo Column"</SPAN><SPAN lang=EN-US >);</SPAN>

<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >TableItem tableItem=</SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >TableItem(table,SWT.NONE);</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >TableEditor editor = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >TableEditor (table);</SPAN>

<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >Button checkButton = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >Button(table, SWT.CHECK);</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >checkButton.pack();</SPAN>

<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >editor.minimumWidth = checkButton.getSize ().x;</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >editor.horizontalAlignment = SWT.CENTER;</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >editor.setEditor(checkButton, tableItem, </SPAN><SPAN lang=EN-US >0</SPAN><SPAN lang=EN-US >);</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >editor = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >TableEditor (table);</SPAN>

<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >Combo combo = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >Combo(table, SWT.CHECK);</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >combo.pack();</SPAN>

<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >editor.minimumWidth = combo.getSize ().x;</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >editor.horizontalAlignment = SWT.CENTER;</SPAN>
<SPAN lang=EN-US >  </SPAN><SPAN lang=EN-US >editor.setEditor(combo, tableItem, </SPAN><SPAN lang=EN-US >1</SPAN><SPAN lang=EN-US >);</SPAN>

<SPAN lang=EN-US >}</SPAN>

Artigos relacionados