Como colorir a borda do componente Text

Veja nesta dica como incrementar a interface de alguns componentes SWT.

Como colorir a borda do componente Text

 

O SWT Widgets não fornece nenhuma funcionalidade para adicionar cor em torno de componentes como Text. Mas isto pode ser feito usando um truque simples. Este é um exemplo simples aplicado ao componente mais utilizado pelos desenvolvedores.

 

Para adicionar a borda colorida em torno do Text um retângulo pode ser desenhado em torno do Text usando PaintListener().

 

 

Código de implementação:

1. private void initialize() {
<SPAN lang=EN-US >2.   </SPAN><SPAN lang=EN-US >GridData g=</SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >GridData();</SPAN>
<SPAN lang=EN-US >3.  </SPAN><SPAN lang=EN-US >g.grabExcessHorizontalSpace=</SPAN><B><SPAN lang=EN-US >true</SPAN></B><SPAN lang=EN-US >;</SPAN>
<SPAN lang=EN-US >4.  </SPAN><SPAN lang=EN-US >g.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;</SPAN>
<SPAN lang=EN-US >5.  </SPAN><SPAN lang=EN-US >Label label=</SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >Label(this,SWT.NONE);</SPAN>
<SPAN lang=EN-US >6.  </SPAN><SPAN lang=EN-US >label.setText(</SPAN><SPAN lang=EN-US >"Bordered Text"</SPAN><SPAN lang=EN-US >);</SPAN>
<SPAN lang=EN-US >7.  </SPAN><SPAN lang=EN-US >text = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >Text(this, SWT.NONE);</SPAN>
<SPAN lang=EN-US >8.  </SPAN><SPAN lang=EN-US >text.setBounds(</SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >org.eclipse.swt.graphics.Rectangle(</SPAN><SPAN lang=EN-US >92</SPAN><SPAN lang=EN-US >,</SPAN><SPAN lang=EN-US >40</SPAN><SPAN lang=EN-US >,</SPAN><SPAN lang=EN-US >84</SPAN><SPAN lang=EN-US >,</SPAN><SPAN lang=EN-US >28</SPAN><SPAN lang=EN-US >));</SPAN>
<SPAN lang=EN-US >9.  </SPAN><SPAN lang=EN-US >text.setLayoutData(g);</SPAN>
<SPAN lang=EN-US >10.  </SPAN><SPAN lang=EN-US >addPaintListener(</SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >PaintListener() {</SPAN>
<SPAN lang=EN-US >11.    </SPAN><B><SPAN lang=EN-US >public void </SPAN></B><SPAN lang=EN-US >paintControl(PaintEvent e) {</SPAN>
<SPAN lang=EN-US >12.      </SPAN><SPAN lang=EN-US >GC gc=e.gc;</SPAN>
<SPAN lang=EN-US >13.      </SPAN><SPAN lang=EN-US >Color red=</SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >Color(null,</SPAN><SPAN lang=EN-US >255</SPAN><SPAN lang=EN-US >,</SPAN><SPAN lang=EN-US >0</SPAN><SPAN lang=EN-US >,</SPAN><SPAN lang=EN-US >0</SPAN><SPAN lang=EN-US >);</SPAN>
<SPAN lang=EN-US >14.      </SPAN><SPAN lang=EN-US >gc.setBackground(red);</SPAN>
<SPAN lang=EN-US >15.      </SPAN><SPAN lang=EN-US >Rectangle rect=text.getBounds();</SPAN>
<SPAN lang=EN-US >16.      </SPAN><SPAN lang=EN-US >Rectangle rect1 = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >Rectangle(rText.x-</SPAN><SPAN lang=EN-US >1</SPAN><SPAN lang=EN-US >, rText.y-</SPAN><SPAN lang=EN-US >1</SPAN><SPAN lang=EN-US >, </SPAN>
<SPAN lang=EN-US >17.        </SPAN><SPAN lang=EN-US >rText.width+</SPAN><SPAN lang=EN-US >2</SPAN><SPAN lang=EN-US >, rText.height+</SPAN><SPAN lang=EN-US >2</SPAN><SPAN lang=EN-US >);</SPAN>
<SPAN lang=EN-US >18.</SPAN>
<SPAN lang=EN-US >19.      </SPAN><SPAN lang=EN-US >gc.fillRectangle(rect1);</SPAN>
<SPAN lang=EN-US >20.      </SPAN><SPAN lang=EN-US >addControlListener(</SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >ControlAdapter() {</SPAN>
<SPAN lang=EN-US >21.        </SPAN><B><SPAN >public void </SPAN></B><SPAN >controlResized(ControlEvent e) {</SPAN>
<SPAN >22.          </SPAN><B><SPAN >super</SPAN></B><SPAN >.controlResized(e);        </SPAN><SPAN >21.        </SPAN><SPAN >}</SPAN>
<SPAN >23.      </SPAN><SPAN >});</SPAN>
<SPAN >24.    </SPAN><SPAN >}</SPAN>
<SPAN >25  </SPAN><SPAN >});</SPAN>
<SPAN >26.</SPAN><SPAN >}</SPAN>

Artigos relacionados