41
Criação Dinâmica de Interfaces Gráficas Definidas em XML Manual de Utilização da Package Xil 0.5A Relatório de Projecto (parte II) Ano Lectivo: 2002/2003 Curso: Licenciatura em Ensino De Informática Orientador: Prof. Doutor João M. P. Cardoso Realizado por: Nome: Gil Moreira N.º 17325 Faro, 4 de Julho de 2003

Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

  • Upload
    hanga

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual de Utilização da Package Xil 0.5A

Relatório de Projecto (parte II)

Ano Lectivo: 2002/2003 Curso: Licenciatura em Ensino De Informática

Orientador: Prof. Doutor João M. P. Cardoso Realizado por: Nome: Gil Moreira N.º 17325

Faro, 4 de Julho de 2003

Page 2: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Índice

ÍNDICE ...................................................................................................................................................................I

ÍNDICE DE FIGURAS........................................................................................................................................ II

ÍNDICE DE EXEMPLOS ................................................................................................................................... II

1. INSTALAÇÃO............................................................................................................................................. 1

2. COMPONENTES........................................................................................................................................ 2

3. DEFINIÇÃO EM XML............................................................................................................................... 5

3.1 Palavras-Chave da Interface ..................................................................................................................7 3.1.1 GUI ...................................................................................................................................................7 3.1.2 Size ..................................................................................................................................................7

3.2 Palavras-Chave dos Componentes .......................................................................................................9 3.2.1 Button...............................................................................................................................................9 3.2.2 CheckBox ......................................................................................................................................10 3.2.3 ImageLabel & TextLabel .............................................................................................................10 3.2.4 TextArea ........................................................................................................................................13 3.2.5 TextField........................................................................................................................................13 3.2.6 MenuBar ........................................................................................................................................13 3.2.7 Menu ..............................................................................................................................................14 3.2.8 MenuItem ......................................................................................................................................14 3.2.9 OUT................................................................................................................................................14

3.3 Posicionamento dos componentes ......................................................................................................16 3.4 Atributos Especiais .................................................................................................................................18

3.4.1 ACTION .........................................................................................................................................18 open & saveas ................................................................................................................................18 box ..................................................................................................................................................20 msg .................................................................................................................................................21 exit ..................................................................................................................................................22

4. GERAÇÃO E INTERACÇÃO COM A INTERFACE .......................................................................... 23

4.1 Exemplos .................................................................................................................................................23 4.1.1 Olá Mundo.....................................................................................................................................23 4.1.2 Botão de saída .............................................................................................................................25 4.1.3 Botão Abrir ....................................................................................................................................25

4.2 Métodos ...................................................................................................................................................29 4.2.1 Geração .........................................................................................................................................29 4.2.2 Verificação de estados ................................................................................................................29 4.2.3 Alteração de estados ...................................................................................................................31 4.2.4 Obtenção de valores....................................................................................................................31 4.2.5 Modificação de valores................................................................................................................32 4.2.6 Interacção com o utilizador .........................................................................................................33

5. LIMITAÇÕES ........................................................................................................................................... 34

6. TABELAS DE REFERÊNCIA................................................................................................................. 35

6.1 Tabela de componentes e atributos suportados ................................................................................36 6.2 Tabela do atributo ACTION...................................................................................................................37 6.3 Tabela de métodos.................................................................................................................................38

Page 3: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

ii

Índice de figuras Figura 1 – Componentes colocados numa janela. 2 Figura 2 – Caixa de verificação seleccionada. 3 Figura 3 – Menu Aberto. 3 Figura 4 – Janela gerada por XML. 6 Figura 5 – Exemplo de uma label. 11 Figura 6 – Label com alinhamento Exemplo 1. 12 Figura 7 – Label com alinhamento Exemplo 2. 12 Figura 8 – Label com alinhamento Exemplo 3. 12 Figura 9 – Label com contorno. 12 Figura 10 – Caixa de Texto com Scroll Activado 13 Figura 11 – Exemplo de posicionamento. 16 Figura 12 – Interface redimensionada. 17 Figura 13 – Exemplo da janela de escolha de ficheiro. 19 Figura 14 – Caixa de confirmação. 20 Figura 15 – Caixa de Introdução de Dados. 20 Figura 16 – Exemplo de uma caixa de mensagem. 22 Figura 17 – Exemplo de uma caixa de mensagem sem título nem mensagem. 22 Figura 18 – Olá Mundo versão com interface gráfica. 23 Figura 19 – Exemplo de um botão de saída. 25 Figura 20 – Exemplo de um botão de abrir ficheiro. 26 Figura 21 – Janela de escolha de ficheiros. 26 Figura 22 – Resultado da escolha de ficheiro. 27 Figura 23 – TextField Inactivo. 30

Índice de exemplos Exemplo 1 – Definição em XML. ......................................................................................................................... 5 Exemplo 2 – Código simples de uma classe cliente........................................................................................... 24 Exemplo 3 – Código cliente com interacção. ..................................................................................................... 27

Page 4: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

1

1. Instalação

Para utilizar esta package é necessário ter o SDK Java1 instalado, e o parser

XML Xerces2. A instalação é muito simples, basta colocar o xil.jar num directório

qualquer à escolha, e acrescentar à variável de ambiente CLASSPATH a linha

caminho do directório\xil.jar. Por exemplo, supondo que se tinha copiado o ficheiro

para o directório c:\java\xil\, e ele se chama xil.jar, teria de ser adicionada a seguinte

linha ao CLASSPATH, c:\java\xil\xil.jar. A forma de adicionar esta linha à variável de

ambiente depende do sistema operativo, por exemplo em Windows seria usado o

comando SET da seguinte forma:

SET CLASSPATH=%CLASSPATH%;caminho\xil.jar

E em GNU/Linux:

CLASSPATH=%CLASSPATH:caminho/xil.jar

Alternativamente, basta indicar ao compilador Java através da opção –cp ou –

classpath o caminho para a pakcage. Posteriormente apenas é necessário incluir no

programa Java a seguinte linha, import xil.*; .

1 Disponível no site da Sun, http://java.sun.com 2 Disponível no site http://xml.apache.org

Page 5: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

2

2. Componentes Em primeiro lugar é necessário introduzir os termos que são utilizados quando

se fala de interfaces gráficas, e mais especificamente os termos que são

necessários para compreender a definição em XML de uma interface. A primeira

definição que se pode fazer é a de um componente, este é o nome dado aos

objectos que fazem parte da interface gráfica. Tomando isto em consideração,

observe-se a seguinte imagem de uma interface gráfica:

Figura 1 – Componentes colocados numa janela.

Nesta primeira imagem podemos observar os seguintes tipos de

componentes:

1. Frame – Janela, é essencialmente um painel onde são colocados os outros

componentes da interface. Normalmente possui uma barra superior onde se

encontram os botões para minimizar3, maximizar4, e fechar a janela.

2. Menu Bar – Barra de Menus, é um campo dentro de uma janela, que está

reservado para a colocação de menus.

3 Reduzir a janela de forma a ficar visível apenas na forma de, tipicamente, um ícone. 4 Aumentar a janela de forma a ocupar todo o ecrã.

2

3

4 5 6

7

Page 6: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

3

3. Button – Botão, é uma representação virtual de um botão simples.

Normalmente desencadeia uma acção após ser pressionado.

4. Textfield – Campo de texto, é uma zona onde se pode colocar algum texto.

E é possível editar o texto que lá está.

5. Check Box – Caixa de verificação, é um tipo de botão que funciona como

variável boleana, isto é, possui dois estados seleccionada ou não seleccionada.

Quando está seleccionada, Figura 2, apresenta uma marca.

Figura 2 – Caixa de verificação seleccionada.

6. Label – Etiqueta, é um componente que serve para colocar texto que não é

possível editar, ou seja, só o programador controla o texto que lá aparece. Também

é possível inserir imagens neste componente.

7. Textarea – Área de texto, de mesma forma que o Textfield permite colocar

e editar texto, suportando no entanto mais do que uma linha.

Figura 3 – Menu Aberto.

Na imagem da Figura 3 podemos ver:

1. Menu – Menu, botão que quando carregado mostra uma lista com opções

para escolha.

2. Menu Item – Opções de menu, são opções que aparecem num menu,

tipicamente após a escolha de uma, é desencadeada uma acção na aplicação.

1

2

Page 7: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

4

Utilizando a package desenvolvida é possível definir todos os componentes

ilustrados anteriormente, e outros que serão introduzidos mais adiante, num ficheiro

XML.

Page 8: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

5

3. Definição em XML Para construir uma interface gráfica utilizando a package, é necessário definir

em XML os componentes. Esta definição é feita de forma semelhante ao modo como

se define uma página em HTML. Existem palavras-chave que definem os

componentes e respectivos atributos, e outras que servem para configurar a

interface. As palavras-chave também podem ser chamadas de “Tags”.

Um exemplo de uma palavra-chave pode ser:

<Componente [Atributo1=”valor” …. AtributoN=”valor”]/>

O carácter “<” marca o inicio e os caracteres “/>” marcam o fim. Caso seja

necessário indicar que existem componentes dentro de componentes, por exemplo

com os menus, utiliza-se uma forma diferente de terminar a definição.

<Componente [Atributo1=”valor” …. AtributoN=”valor”]/>

<SubComponente [Atributo1=”valor” …. AtributoN=”valor”]/>

</Componente>

A estrutura básica de um documento em XML para definir uma interface é a

seguinte:

Exemplo 1 – Definição em XML.

<?xml version="1.0"?>

<GUI NAME="Janela">

<Size WIDTH="300" HEIGHT="100"/>

</GUI>

Page 9: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

6

A package desenvolvida a partir desta definição XML gera a seguinte interface:

Figura 4 – Janela gerada por XML.

Podem-se ver, neste exemplo, algumas das palavras-chave utilizadas. Por

exemplo, a palavra-chave GUI indica que vamos iniciar a definição de uma interface,

e a palavra Size, controla o tamanho da janela gerada. A primeira linha do

documento é opcional, no entanto existe uma opção para configurar o tipo de

caracteres suportados no ficheiro que poderá ser útil caso se queira utilizar acentos

ou outros caracteres diferentes. Deve-se colocar na primeira linha o seguinte:

<?xml version=”1.0” encoding=”UTF-16”?>

Os valores do parâmetro encoding estão definidos no standard do XML, e

definem essencialmente o tipo de codificação de caracteres que deve ser esperada

no documento. Alguns valores são:

UTF-8 Codificação Unicode 8 bits UTF-16 Unicode 16 bits, suporta caracteres

acentuados EUC-JP Para caracteres japoneses

US-ASCII Tradicional código ASCII

O editor utilizado para criar o ficheiro XML tem de suportar a codificação utilizada.

Page 10: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

7

3.1 Palavras-Chave da Interface Antes de se definir as palavras-chave e atributos é necessário ter em conta

que tanto num caso como noutro eles são “case sensitive”, ou seja, se estiver

definida uma palavra-chave como sendo PaLaVra é assim que tem de constar no

ficheiro XML. Tendo isto em conta, todos os valores de atributos, que são pré-

definidos, por exemplo os true e false, têm de estar em minúsculas. Para além disto,

todos as palavras-chave ou atributos entre “[ ]” são considerados opcionais e os

valores de atributos separados por “ | “, indicam que deve ser escolhido um.

3.1.1 GUI

A palavra-chave GUI marca o início da definição da interface gráfica, todos os

componentes são definidos entre o início e o fim desta. Os atributos suportados são,

o atributo NAME que serve para definir o nome da janela que irá aparecer, se não

for colocado nenhum nome, o nome por omissão é “Janela”. E o atributo RESIZE,

que aceita os valores true ou false, e quando lhe é atribuido false impede o utilizador

de redimensionar a janela manualmente.

<GUI NAME=”nome” [ RESIZE=”true”|”false”]>

<Componente1 />

…………………………

<ComponenteN />

</GUI>

3.1.2 Size

Esta tag indica que queremos definir o tamanho da janela, os atributos

“WIDTH” e “HEIGHT” correspondem, respectivamente, à largura e altura da janela.

Se não for incluída esta tag, ou faltar um dos atributos, é atribuído um tamanho por

omissão de 400x400. Os valores aqui colocados têm de ser inteiros maiores que

zero.

<Size WIDTH=”num” HEIGHT=”num”/>

Page 11: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

8

Por Exemplo:

<Size WIDTH=”800” HEIGHT=”600”/>

Define um tamanho para a janela de 800x600.

Page 12: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

9

3.2 Palavras-Chave dos Componentes Os diferentes componentes aqui apresentados possuem alguns atributos em

comum, por esse motivo quando se explicar os atributos de um componente, só se

falará dos atributos não explicados previamente.

3.2.1 Button A tag Button é utilizada para definir um botão. A definição mais básica é a

seguinte:

<Button NAME="nome" LABEL="Botao" />

O atributo NAME define o nome do botão e é o único obrigatório, sem ele o

componente não será processado. É por esse nome que o componente é

referenciado no lado da aplicação cliente, por esse motivo o nome deve ser único.

Não devem existir componentes com nomes iguais. Por outro lado, o atributo LABEL

é facultativo e serve para colocar uma etiqueta visível no botão, tipicamente para

indicar a sua função. No exemplo seguinte podem-se observar mais alguns atributos

possíveis para o botão, nomeadamente a forma de especificar acções que

despoletam código cliente.

<Button NAME="nome" LABEL="Botao" CLASS="classe"

METH="nome_do_metodo" VISIBLE="estado"/>

O atributo METH serve para indicar qual o método da aplicação que é

chamado quando o botão é pressionado. Este método deve ser do tipo:

Public void nome_do_metodo()

{

…………………………

}

O atributo CLASS indica a classe Java onde se encontra o método definido

pelo o atributo METH. Deve ser indicado o caminho completo para lá chegar, isto é,

Page 13: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

10

se o método se encontra na classe principal que pertence à package programa, o

caminho indicado deverá ser CLASS=”programa.principal”.

O atributo VISIBLE, como o nome indica controla a visibilidade inicial de um

componente. São suportados dois valores true e false, se eu colocar

VISIBLE=”false”, o componente não será visível. Por omissão os componentes são

visíveis, ou seja é igual ter VISIBLE=”true” ou omitir a tag. O atributo ENABLED

controla se o componente está activo ou não. Se um componente não estiver activo

o utilizador não consegue interagir com ele. Este componente ainda suporta mais

um atributo o ACTION, que é designado como atributo especial, do qual depende a

presença de outros atributos, e será explicado à parte.

A sintaxe geral desta tag, sem incluir o atributo ACTION é a seguinte:

<Button NAME="nome" [ LABEL="Botao"] [CLASS="classe"

METH="nome_do_metodo"] [VISIBLE="true”|”false" ] [ENABLED=”true”|”false”]/>

3.2.2 CheckBox

Tag utilizada para definir uma caixa de verificação. A sintaxe geral é a

seguinte:

<CheckBox NAME="nome" [ LABEL="CheckBox"] [CLASS="classe"

METH="nome_do_metodo"] [SELECT="true”|”false"] [VISIBLE="true|false"]

[ENABLED=”true”|”false”]/>

Como se pode ver o único atributo novo neste componente é o SELECT, que

aceita dois valores true ou false. O que este atributo controla é o estado inicial da

caixa de verificação, se estiver definido true a caixa aparece logo seleccionada. Este

componente também suporta o atributo ACTION.

3.2.3 ImageLabel & TextLabel Estas duas tags representam o mesmo componente, a Label, a distinção de

nome serve apenas para tornar a definição mais legível no caso em que só se

Page 14: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

11

deseja inserir uma imagem ou texto. Se for necessário introduzir texto e uma

imagem é indiferente qual das duas tags se utiliza.

A sintaxe geral é:

<ImageLabel NAME="tlabel1" [ TEXT="texto_da_label"]

[ALIGNV="tipo_de_alinhamento"] [ALIGNH="tipo_de_alinhamento"]

[IMAGE="caminho_para_a_imagem"] [BORDER="true”|”false"]

[VISIBLE=”true|false”] [ENABLED=”true”|”false”]/>

O atributo TEXT especifica o texto que irá aparecer dentro da label. Se

colocarmos TEXT=”esta e uma label”, por exemplo o resultado será este:

Figura 5 – Exemplo de uma label.

O atributo IMAGE deve conter como valor o nome e caminho de um ficheiro

de imagem, por exemplo, “c:\imagem.jpg”. Os atributos ALIGNV e ALIGNH

controlam o alinhamento do texto, esta funcionalidade é útil quando se tem uma

imagem e texto dentro da label.

Os valores suportados são para o ALIGNV:

• center – alinha o texto ao centro • bottom – alinha o texto com o fundo • top – alinha o texto com o topo

E para o ALIGNH:

• center – texto alinhado ao centro • right – texto alinhado a direita • left – texto alinhado a esquerda

Exemplos com alinhamentos diferentes, e uma imagem:

ALIGNH=”center” e ALIGNV=”center”

Page 15: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

12

Figura 6 – Label com alinhamento Exemplo 1.

ALIGNH=”center” e ALIGNV=”bottom”

Figura 7 – Label com alinhamento Exemplo 2.

ALIGNH=”right” e ALIGNV=”bottom”

Figura 8 – Label com alinhamento Exemplo 3.

O atributo BORDER, pode ter dois valores true ou false. Este atributo controla

a existência ou não de uma linha de contorno.

Figura 9 – Label com contorno.

Page 16: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

13

3.2.4 TextArea Esta tag é utilizada para inserir uma área de texto, que dispõe de barra de

scroll se necessário.

Figura 10 – Caixa de Texto com Scroll Activado

A sintaxe geral é:

<TextArea NAME="texto" [TEXT="texto_a_colocar_na_caixa"]

[ROWS="valor_inteiro"] [COLS="valor_inteiro"] [VISIBLE="true”|”false"]

[ENABLED=”true”|”false”]/>

O atributo ROWS define o número de linhas que a caixa tem, se o texto não

ultrapassar este número o scroll não é activado. Este valor tem de ser inteiro e maior

que zero. O COLS é semelhante, a diferença é que controla o número de colunas

que a caixa tem.

3.2.5 TextField

Esta tag serve para definir pequenos campos de texto, semelhantes a uma

TextArea, mas sem capacidade de scroll, e com suporte para apenas uma linha. A

sintaxe geral deste componente é:

<TextField NAME="text" [TEXT="texto_a_colocar"] [COLS="valor_inteiro"]

[VISIBLE=" true”|”false"] [ENABLED=”true”|”false”]/>

A maior parte dos atributos são comuns com a TextArea, com excepção do

ROWS que não é suportado.

3.2.6 MenuBar

Page 17: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

14

Esta tag serve para indicar que os seus sub-componentes, ou seja os

componentes definidos dentro da tag de abertura <Tag> e a de fecho </Tag>,

pertencem a uma barra de menus. A sintaxe é muito simples:

<MenuBar NAME="nome" [VISIBLE=”true”|”false”]

[ENABLED=”true”|”false”]>

</MenuBar>

Presentemente é possível incluir dentro de uma barra de menus componentes

que não sejam menus, como botões, mas não é recomendado.

3.2.7 Menu Esta palavra-chave é utilizada para definir um menu. Este componente deve

ser colocado dentro de uma barra de menus, como sub-componente. A sintaxe geral

deste componente é:

<Menu NAME="File" [LABEL="File"] [VISIBLE=”true”|”false”]

[ENABLED=”true”|”false”]>

</Menu>

Como facilmente se repara, este componente aceita sub-componentes, que

deverão ser itens de menu. Embora, não seja aconselhado, é possível definir outros

componentes como botões.

3.2.8 MenuItem O MenuItem é o componente que deve ser colocado dentro de um menu. Em

funcionalidade é semelhante a um botão, suportando os mesmos atributos.

<MenuItem NAME="nome" [LABEL="etiqueta"] [CLASS="classe"

METH="nome_do_método"] [VISIBLE=”true”|”false”] [ENABLED=”true”|”false”]>

Também suporta, tal como o botão, o atributo ACTION.

3.2.9 OUT

Page 18: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

15

Esta tag serve para definir sub-janelas em relação a interface principal, que

inicialmente estão escondidas.

<OUT NAME="nome" [ENABLED=”true”|”false”]>

</OUT>

É possível definir como sub-componentes desta sub-janela, quaisquer outros

componentes suportados, existe apenas um senão, o uso do atributo VISIBLE, não é

suportado nesses sub-componentes. Também é possível especificar o tamanho da

janela que irá ser criada por esta definição utilizando o atributo Size da forma já

explicada. Estes componentes têm obrigatoriamente o RESIZE=”false”, não sendo

possível alterar este valor.

Exemplo:

<OUT NAME="f1">

<Size WIDTH="100" HEIGHT="400"/>

<CheckBox NAME="Check4" LABEL="CheckBox 4" SELECT="false"/>

<CheckBox NAME="Check5" LABEL="CheckBox 5" SELECT="false”/>

<CheckBox NAME="Check6" LABEL="CheckBox 6" SELECT="true"/>

<Button NAME="botao5" LABEL="Botao 5" CLASS="principal"

METH="botao5_click"/>

</OUT>

Page 19: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

16

3.3 Posicionamento dos componentes

O posicionamento dos componentes, nesta versão da package, é feito de

forma sequencial em relação à definição. Quer isto dizer que os componentes são

colocados na interface pela ordem em que foram definidos no XML. Utilizando a

definição seguinte:

<?xml version="1.0"?>

<GUI NAME="Posicionamento" RESIZE="false">

<Size

<CheckBox NAME="Check2" LABEL="CheckBox 2"/>

<CheckBox NAME="Check1" LABEL="CheckBox 1"/>

<Button NAME="botao2" LABEL="Botao 2"/>

<TextField NAME="text1" TEXT="Caixa"/>

<Button NAME="botao1" LABEL="Botao 1"/>

</GUI>

Podemos ver na Figura 11 que os componentes são colocados na interface

pela mesma ordem que são definidos no ficheiro.

Figura 11 – Exemplo de posicionamento.

A única excepção é o caso dos menus que são colocados no topo,

independentemente de onde estão definidos. Se a interface for redimensionada, pelo

Page 20: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

17

utilizador, o posicionamento dos componentes altera-se, como se pode ver na Figura

12.

Figura 12 – Interface redimensionada.

Para evitar que isto aconteça a única solução é fixar o tamanho da interface

através do atributo RESIZE=”false” na definição do GUI.

Page 21: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

18

3.4 Atributos Especiais

3.4.1 ACTION

Este atributo é suportado em vários componentes, nomeadamente naqueles

que logicamente desencadearão acções, como botões, itens de menu, e até caixas

de verificação. É o atributo mais complexo de todos, vários outros atributos

dependem dele, isto é, do valor que ele contém.

Os valores suportados pelo atributo ACTION são:

• open • saveas • box • exit • msg

Estes valores representam acções que são desencadeadas,

automaticamente, após o componente, ao qual estão atribuídas, ter sido accionado.

Um exemplo de um componente accionado é o botão depois de pressionado através

do rato. O action suporta ainda que se coloque como valor o nome de um

componente definido com OUT. Ao se definir uma acção desta forma, por exemplo,

num botão quando este é accionado o componente é mostrado ao utilizador.

open & saveas

Quando o atributo ACTION tem o valor “open”, significa que o componente

quando pressionado irá mostrar uma caixa de diálogo, para escolher um ficheiro.

Page 22: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

19

Figura 13 – Exemplo da janela de escolha de ficheiro.

Não existem muitas diferenças entre o “open” e o “saveas”, essencialmente a

única diferença é o título da janela que aparece. Ambos os valores implicam que se

defina igualmente uma CLASS e um METH. Neste caso, ao contrário do botão, o

método utilizado deve ser do tipo:

Public void nome_do_metodo(File ficheiro)

{

…………………………

}

Quando esta acção é activada, depois do utilizador ter escolhido o ficheiro,

este método irá ser executado tendo como parâmetro de entrada o ficheiro escolhido

pelo utilizador. Caso o utilizador não tenha escolhido nenhum ficheiro, o parâmetro

terá o valor null. Em relação à classe, o propósito é o mesmo já explicado

anteriormente, serve para indicar onde se encontra a classe que possui o método

que queremos chamar. A sintaxe geral destes atributos será então:

<Componente NAME=”nome” ACTION=”open”|”saveas” CLASS=”classe”

METH=”metodo” />

Page 23: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

20

box

Ao utilizar este valor pede-se que seja associada à activação do componente,

o aparecimento de uma caixa, cujo tipo é variável e definido através do atributo

TYPE=”tipo”. Quando se utiliza a acção box, é obrigatório utilizar o TYPE, os valores

suportados pelo TYPE são:

• confirm - Caixa com uma mensagem e para pedir confirmação. • input - Caixa com uma mensagem onde se pode introduzir valores.

Exemplo com ACTION=”box” TYPE=”confirm”::

Figura 14 – Caixa de confirmação.

Exemplo com ACTION=”box” TYPE=”input”:

Figura 15 – Caixa de Introdução de Dados.

É lógico que necessitamos de uma forma de receber ou os dados introduzidos

ou a opção escolhida na confirmação, por esse motivo é necessário utilizar

novamente os atributos CLASS e METH. Neste caso o METH terá de apontar para

um método deste tipo:

Public void nome_do_metodo(String valor)

{

…………………………

}

Page 24: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

21

Este método será executado após ter sido introduzido um valor ou escolhida

uma opção numa destas caixas e esse valor é passado para o parâmetro de entrada

como uma String. Os valores passados para String de entrada do método são os

seguintes:

Caixa de confirmação:

o Yes – A string irá conter o carácter 0. o No – A string irá conter o carácter 1.

o Fechar a Janela – A string irá conter a sequência “-1”.

Caixa de introdução de dados:

o Ok – A string irá conter os dados introduzidos, podem não ter sido introduzidos nenhuns dados, nesse caso a string está vazia.

o Cancel e Fechar a Janela – A string irá conter a sequência “-1”.

Como se pode ver nas imagens anteriores, as caixas que aparecem possuem

um título e uma mensagem. Para controlar o título e a mensagem recorre-se aos

atributos MSG e TITLE, a sua utilização é muito simples, basta acrescentar

MSG=”texto da mensagem” e TITLE=”título da janela” à definição do componente.

Não são atributos obrigatórios, mas são recomendados, por motivos óbvios. A

sintaxe geral para estes atributos é:

<Componente NAME=”nome” ACTION=”box” TYPE=”confirm” | “input”

[MSG=”mensagem”] [TITLE=”titulo”] CLASS=”classe” METH=”método” />

msg O valor msg indica que queremos simplesmente mostrar uma caixa com uma

mensagem. Tal como no caso anterior da box esta caixa tem uma mensagem e um

título, pelo que também se utilizam aqui os atributos TITLE e MSG.

Page 25: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

22

Figura 16 – Exemplo de uma caixa de mensagem.

A sintaxe geral de um componente com esta acção atribuída é:

<Componente NAME=”nome” ACTION=”msg” [MSG=”mensagem”]

[TITLE=”titulo”] />

Tal como no caso anterior o MSG e o TITLE são opcionais, mas não faz muito

sentido deixá-los de lado pois o resultado será este:

Figura 17 – Exemplo de uma caixa de mensagem sem título nem mensagem.

exit Este valor, quando atribuído, significa que se o componente for activado o

programa termina, sem pedir confirmação nenhuma. Por outras palavras, se um

botão tiver a seguinte definição:

<Button NAME=”botao_de_saida” LABEL=”sair” ACTION=”exit” />

Após este botão ser pressionado o programa termina, sem pedir confirmação.

A sintaxe é muito simples:

<Componente NAME=””nome” ACTION=”exit” />

Page 26: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

23

4. Geração e interacção com a interface

Para gerar uma interface é necessário defini-la em XML e usando a package

criar os objectos e chamar os métodos necessários para construir a interface.

Seguem-se alguns exemplos de como proceder para gerar interfaces e a descrição

de todos os métodos relevantes para interagir com elas.

4.1 Exemplos

4.1.1 Olá Mundo

Utilizando as tags de componentes e atributos explicados anteriormente,

define-se a interface que se quer utilizar, um exemplo de uma definição pode ser o

seguinte:

<GUI>

<Size WIDTH="300" HEIGHT="300"/>

<TextLabel NAME="etiqueta" TEXT="Ola Mundo" />

</GUI>

O equivalente a um típico “hello world” mas usando uma interface gráfica.

Figura 18 – Olá Mundo versão com interface gráfica.

O código em Java necessário para gerar esta janela é o seguinte:

Page 27: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

24

Exemplo 2 – Código simples de uma classe cliente.

Pode-se ver logo no topo a linha import xil.*; , que torna disponível as classes

da package xil para utilização. Mais abaixo no código vê-se a linha, BuildGUI g=new

BuildGUI(args[0]) que consiste na declaração, criação e inicialização de um objecto

BuildGUI, responsável pela construção da interface. O argumento args[0], consiste

no nome do ficheiro XML que define a interface. Neste caso ele está a ser

introduzido como argumento do programa mas, obviamente, é perfeitamente

possível fixar o nome de forma estática dentro do código, se necessário. A última

instrução g.build(); efectivamente constrói a interface e mostra-a.

import xil.*;

public class Cliente

{

public static void main(String args[])

{

BuildGUI g=new BuildGUI(args[0]);

g.build();

}

}

Page 28: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

25

4.1.2 Botão de saída

Partindo desta definição em XML:

<GUI>

<Size WIDTH="200" HEIGHT="200"/>

<TextLabel NAME="text1" TEXT="Exemplo de uma interface" />

<Button NAME="botao1" LABEL="Sair" ACTION="exit" />

</GUI>

Utilizando o mesmo código Java que no exemplo anterior, é gerada a

seguinte interface:

Figura 19 – Exemplo de um botão de saída.

Conforme o que foi dito acerca do atributo ACTION pode-se verificar que a

acção exit, atribuída ao botão, provoca a saída do programa sem confirmação.

4.1.3 Botão Abrir

Usando esta definição em XML:

<GUI>

<Size WIDTH="300" HEIGHT="200"/>

<TextLabel NAME="text1" TEXT="Exemplo de uma interface" />

<TextField NAME="tfield1" COLS="20" />

<Button NAME="botao1" LABEL="Abrir" ACTION="open"

CLASS="ap_cliente.Cliente2" METH="botaoOpen"/>

</GUI>

Page 29: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

26

Esta definição já é mais complexa que as dos exemplos anteriores, identifica-

se logo a utilização do atributo ACTION com o valor open que como foi dito indica

que se quer abrir uma caixa de escolha de ficheiro, passando o nome desse ficheiro

para o método definido com METH. A interface gerada por esta definição é a

seguinte:

Figura 20 – Exemplo de um botão de abrir ficheiro.

Após o botão ser pressionado aparece uma janela deste tipo:

Figura 21 – Janela de escolha de ficheiros.

Page 30: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

27

Figura 22 – Resultado da escolha de ficheiro.

Como se pode ver o ficheiro escolhido foi escrito no campo de texto. Neste

exemplo interessa analisar o código Java responsável por esta interface,

especialmente porque se utiliza aqui o atributo ACTION que necessita de um

método para onde devolver o valor que neste caso indica o nome de um ficheiro. O

código responsável por esta aplicação é o seguinte:

Exemplo 3 – Código cliente com interacção.

Este código tem já algumas chamadas aos métodos da package, e é

ligeiramente mais complexo que o dos exemplos anteriores. Uma das primeiras

diferenças é que agora o objecto g é declarado como atributo da classe, para

import java.io.File;

import xil.*;

public class Cliente2

{

private static BuildGUI g=null;

public static void main(String args[])

{

g=new BuildGUI(args[0]);

g.constroi();

}

public void botaoOpen(File fich)

{

g.setComponentValue("tfield1",fich.toString());

}

}

Page 31: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

28

possibilitar o acesso dos restantes métodos da classe. O código responsável pela

inicialização e construção da interface encontra-se no método main e é igual ao dos

exemplos anteriores. A novidade neste código é a função botaoOpen(File ), que está

definida no ficheiro XML como receptora do ficheiro escolhido pelo utilizador e a

chamada que é feita ao método setComponentValue(String,String) da classe

BuildGUI. O método botaoOpen que é indicado no XML, como se pode observar

através dos atributos CLASS e METH, recebe na variável fich o nome do ficheiro

seleccionado. De seguida esse nome é convertido para String e escrito no TextField

através do método setComponentValue(Nome_do_componente,Valor);. Este aceita

como parâmetros de entrada, o nome do componente que queremos alterar o valor

e uma String que contém esse valor que será colocado no componente. Este e os

restantes métodos para interagir com os componentes serão descritos mais adiante.

Page 32: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

29

4.2 Métodos

Existem métodos que servem, essencialmente para gerar e interagir com os

componentes da interface. Seguem-se as descrições dos métodos suportados nesta

versão da package.

4.2.1 Geração

Como se pôde ver nos exemplos mostrados anteriormente, a geração da

interface em Java é bastante simples, consiste apenas na chamada a um único

método, antecedida da criação de um novo objecto BuildGUI. O parâmetro do

construtor é uma String que corresponde ao nome do ficheiro XML a utilizar.

BuildGUI objectoBuildGUI=new BuildGUI(ficheiro_xml); objectoBuildGUI.buildi();

É durante a criação do novo objecto BuildGUI, que são detectados os erros

que possam existir na estrutura do ficheiro XML. Erros tais como, caracteres

inválidos, tags não fechadas, entre outros. O método build() devolve um valor

booleano que indica o sucesso ou insucesso da geração da interface.

O protótipo deste método é:

boolean constroi()

4.2.2 Verificação de estados

Estes métodos são semelhantes, aceitam todos uma String com o nome do

componente como parâmetro de entrada e devolvem um valor booleano indicando o

estado da propriedade que estamos a verificar.

Page 33: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

30

Os protótipos destes métodos são:

boolean isComponentEnabled( String nome)

boolean isComponentValid(String nome)

boolean isVisible(String nome)

Utilizar qualquer um destes métodos é extremamente simples, e normalmente

consiste numa instrução como esta:

If (objectoBuildGUI.isVisible(“caixa1”)==true) Instruções; O isComponentEnabled verifica se um objecto está activo, propriedade

Enabled. É diferente de, por exemplo, um botão quando é activado, este activo

refere-se ao utilizador poder interagir com o componente. Normalmente, para

representar o estado inactivo de um componente, de forma gráfica, o conteúdo deste

ou mesmo o próprio componente, fica com uma cor acinzentada. Por exemplo,

utilizando a interface do ponto 4.1.3, um TextField inactivo fica desta forma:

Figura 23 – TextField Inactivo.

Os dois métodos restantes são também muito simples de perceber, o isVisible

indica se o componente é visível, propriedade Visible, e o isComponentValid indica

se o componente é válido ou seja se foi gerado a partir do XML. Estes métodos são

válidos para todos os componentes.

Page 34: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

31

4.2.3 Alteração de estados

Das propriedades mencionados no ponto anterior, apenas é possível alterar o

estado da Enabled e da Visible. Os métodos que controlam o estado têm nomes

semelhantes em relação aos de verificação, mudando apenas o prefixo. Passa de is

para set. Os métodos são:

void setComponentEnabled(String nome, boolean estado)

void setVisible(String nome, boolean estado)

O setVisible controla a propriedade Visible, o método aceita o nome do

componente e o estado true ou false como parâmetros de entrada. O

setComponentEnabled funciona da mesma forma mas para a propriedade Enabled.

Estes dois métodos são válidos para todos os componentes.

4.2.4 Obtenção de valores

Alguns dos componentes possuem valores que são possíveis de obter

através do método getComponentValue. A forma do método é a seguinte:

String getComponentValue(String nome)

O parâmetro de entrada é como habitual, o nome do componente. A String

que é devolvida contém o valor do componente, valor esse que depende do tipo de

componente. A seguinte relação indica quais os componentes e o valor devolvido

em cada caso.

Page 35: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

32

Componentes Valor devolvido como String TextField TextArea TextLabel

O texto que o componente contém.

CheckBox “true” ou “false”, isto é, seleccionada ou não.

4.2.5 Modificação de valores

É possível através dos métodos, descritos de seguida, alterar os valores de

alguns componentes.

Os métodos que permitem alterar os valores são:

void setComponentValue(String nome, String valor)

void addComponentText(String nome, String texto)

O primeiro método o setComponentValue funciona de maneira inversa à do

getComponentValue. A lista de componentes suportados é igual, na seguinte

relação descreve-se o que deverá conter a String valor para cada um dos

componentes.

Componentes Valor introduzido como String TextField TextArea TextLabel

O texto que se quiser colocar no campo.

CheckBox “true” ou “false”, isto é, seleccionada ou não.

No caso dos componentes de texto, ao utilizar este método o texto que lá

existe é completamente substituído pelo novo texto. O segundo método,

addComponentText, serve para adicionar texto a um componente que o suporte. De

momento o único componente disponível que suporta este método é a TextArea. A

utilização é simples, colocamos o nome do componente e uma String com o texto

que se quer acrescentar.

Page 36: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

33

4.2.6 Interacção com o utilizador

Nos casos em que seja necessário pedir valores ou enviar uma mensagem ao

utilizador da aplicação, pode-se utilizar o método aqui descrito.

String msgBox(String titulo,String mensagem, String tipo)

Este método pode criar uma caixa de mensagem, com um titulo e uma

mensagem, que pode ser de três tipos diferentes, consoante o valor introduzido no

parâmetro tipo. Estes valores são semelhantes aos valores do atributo TYPE.

• confirm – A caixa que aparece é de confirmação, tem dois botões YES e NO.

• input – Com este tipo a caixa é de introdução de dados, possui um campo onde o utilizador pode escrever.

• msg – Este tipo de caixa é somente para transmitir informação ao utilizador,

só possui um botão de OK.

Os valores devolvidos pelo método são diferentes para cada tipo de caixa:

Caixa de confirmação Acção: Conteúdo da String de retorno: Yes O carácter 0 No O carácter 1 Fechar a Janela A sequência “-1”

Caixa de introdução Acção: Conteúdo da String de retorno: OK O carácter 0 Cancel Fechar a Janela

A sequência “-1”

Caixa de mensagem Acção: Conteúdo da String de retorno: OK Fechar a Janela

null

Page 37: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

Manual

34

5. Limitações

Na versão presente da package, como seria de esperar de uma versão precoce, existem limitações.

• Não é possível controlar o posicionamento dos componentes com precisão na janela.

• Certos componentes, como as áreas de texto, se tiverem um tamanho

grande podem sair da janela e não ser possível visualizar correctamente.

• Quando se utiliza o atributo VISIBLE é possível que outros componentes, ao redimensionar a janela, passem a ocupar o espaço dos componentes com VISIBLE=”false”.

Page 38: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

35

6. Tabelas de referência

Page 39: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

36

6.1 Tabela de componentes e atributos suportados

Tags/Palavras-Chave

Atributos GUI Size Button CheckBox ImageLabel & TextLabel TextArea TextField MenuBar Menu MenuItem OUT

ACTION � � � ALIGNH � ALIGNV �

BORDER � CLASS � � �

COLS � � ENABLED � � � � � � � � �

HEIGHT � IMAGE � LABEL � � � METH � � � NAME � � � � � � � � � �

RESIZE � ROWS �

SELECT � TEXT � � �

VISIBLE � � � � � � � � WIDTH �

Page 40: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

37

6.2 Tabela do atributo ACTION

Atributos Correspondentes Valores CLASS METH TYPE MSG TITLE

open & saveas � �

box � �

� confirm

Ou

input

� �

msg � � exit

Esta tabela é uma relação entre os valores do ACTION e os atributos suportados em cada valor.

Page 41: Criação Dinâmica de Interfaces Gráficas Definidas em XML ...w3.ualg.pt/~jmcardo/FinalYearProjects/Xil/xilMan.pdf · Criação Dinâmica de Interfaces Gráficas Definidas em XML

38

6.3 Tabela de métodos Componentes

Métodos Button CheckBox ImageLabel & TextLabel

TextArea TextField MenuBar Menu MenuItem OUT

boolean

isComponentEnabled( String nome) � boolean

isComponentValid(String nome) � boolean isVisible(String nome)

� void

setComponentEnabled(String nome,

boolean estado) �

void

setVisible(String nome, boolean estado) � String

getComponentValue(String nome)

� � � �

void

setComponentValue(String nome,

String valor)

� � � �

void

addComponentText(String nome,

String texto)

Esta tabela indica quais os componentes suportados por cada método