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().

 

fig01codcolorir.JPG

 

Código de implementação:

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