// Scribble1.java - Modelo de tratamento de eventos 1.1

Tamanho: px
Começar a partir da página:

Download "// Scribble1.java - Modelo de tratamento de eventos 1.1"

Transcrição

1 Exemplos: // Scribble1.java - Modelo de tratamento de eventos 1.1 import java.applet.*; import java.awt.*; import java.awt.event.*; public class Scribble1 extends Applet implements MouseListener, MouseMotionListener { private int x, y; Graphics g; public void init() { g = getgraphics(); addmouselistener(this); addmousemotionlistener(this); public void mousepressed(mouseevent e) { x = e.getx(); y = e.gety(); public void mousedragged(mouseevent e) { int x1= e.getx(); int y1= e.gety(); g.drawline(x, y, x1, y1); x = x1; y = y1; // Metodos nao usados do interface MouseListener: public void mousereleased(mouseevent e) {; public void mouseclicked(mouseevent e) {; public void mouseentered(mouseevent e) {; public void mouseexited(mouseevent e) {; // Metodos nao usados do interface MouseMotionListener: public void mousemoved(mouseevent e) {; // Scribble2.java - Objectos listeneres (2) pertencem a classes internas import java.applet.*; import java.awt.*; import java.awt.event.*; public class Scribble2 extends Applet { private int x, y; public void init() { addmouselistener(new ListenerMA()); addmousemotionlistener(new ListenerMMA()); 146

2 class ListenerMA extends MouseAdapter { public void mousepressed(mouseevent e) { x = e.getx(); y = e.gety(); class ListenerMMA extends MouseMotionAdapter { public void mousedragged(mouseevent e) { Graphics g = getgraphics(); int x1= e.getx(); int y1= e.gety(); g.drawline(x, y, x1, y1); x = x1; y = y1; // Scribble3.java - Objectos listeneres (2) pertencem a classes internas anónimas import java.applet.*; import java.awt.*; import java.awt.event.*; public class Scribble3 extends Applet { private int x, y; public void init() { addmouselistener(new MouseAdapter() { public void mousepressed(mouseevent e) { x = e.getx(); y = e.gety(); ); addmousemotionlistener(new MouseMotionAdapter() { public void mousedragged(mouseevent e) { Graphics g = getgraphics(); int x1= e.getx(); int y1= e.gety(); g.drawline(x, y, x1, y1); x = x1; y = y1; ); 147

3 // Scribble4.java - Pode-se alterar a visibilidade do applet import java.applet.*; import java.awt.*; import java.awt.event.*; import java.util.vector; public class Scribble4 extends Applet { private int x, y; Vector linhas = new Vector(100, 100); Vector lincorrente; public void init() { addmouselistener(new ListenerMA()); addmousemotionlistener(new ListenerMMA()); class ListenerMA extends MouseAdapter { public void mousepressed(mouseevent e) { lincorrente = new Vector(100, 100); linhas.addelement(lincorrente); lincorrente.addelement( new Point(e.getX(), e.gety())); class ListenerMMA extends MouseMotionAdapter { public void mousedragged(mouseevent e) { Graphics g = getgraphics(); int x1= e.getx(); int y1= e.gety(); Point p = (Point) lincorrente.lastelement(); g.drawline(p.x, p.y, x1, y1); lincorrente.addelement(new Point(x1,y1)); public void paint(graphics g) { for (int j=0; j < linhas.size(); j++) { lincorrente = (Vector) linhas.elementat(j); Point p = (Point) lincorrente.elementat(0); for (int i=1; i<lincorrente.size(); i++) { Point p1 = (Point) lincorrente.elementat(i); g.drawline(p.x, p.y, p1.x, p1.y); p = p1; 148

4 Componentes Gráficos 1. Label Label string de texto não editável utilizada normalmente como legenda ou título para outros elementos gráficos Construtores: Label() cria um label vazio. Label(String s) cria um label com a string passada como parâmetro. Label(String s, int alignment) cria um label com a string passada como parâmetro e o alinhamento especificado que pode ser um dos seguintes valores: Label.LEFT, Label.CENTER, ou Label.RIGHT. Métodos que permitem obter os parâmetros de um label ou modificá-los: String gettext() void settext(string s) void setalignment(int alignment) retorna o texto do Label. coloca o texto do Label. coloca o alinhamento em: Label.LEFT, Label.CENTER, ou Label.RIGHT. Por omissão, um label alinha o texto no seu interior à esquerda. Para criar um objecto label pode-se utilizar o seguinte código: Label etiqueta; // cria uma variável. etiqueta = new Label( Texto1 ); // cria uma instância da classe Label. add(etiqueta); // método da classe Container que adiciona o label ao container. ou simplesmente o seguinte: add( new Label( Texto1 )); // cria uma instância da classe Label e adiciona-a ao applet O label é um componente que não gera eventos. 2. Button Button componente de interface com o utilizador que quando pressionado (ou seleccionado) com o rato desencadeia ( trigger ) uma determinada acção. Um botão gera um evento quando o utilizador clica o botão com o rato. Construtores: Button() - cria um botão sem label. Button(String s) - cria um botão com o label indicado no parâmetro. 149

5 Métodos que permitem obter os parâmetros de um botão ou modificá-los: String getlabel() - retorna o label do botão ou null se não possuir label. void setlabel(string s) - altera o label do botão para o valor do argumento especificado. Tratamento de Eventos Os eventos que ocorrem nos componentes gráficos de interface com o utilizador, permitem que o applet ou a aplicação reajam a entradas ( input ) do utilizador. Por exemplo, os botões usam eventos de acção que são desencadeados quando o botão é premido, não sendo necessário preocuparmo-nos com os eventos mouse down, e mouse up, nem onde estes eventos ocorrem desde que se prima e liberte o botão do rato em cima do componente gráfico botão. Exemplo: /* Construa uma applet com dois botões, iniciar e incrementar, para inicializar ou incrementar o valor de um contador mostrado num label. */ import java.awt.*; import java.awt.event.*; public class Contador extends java.applet.applet { Button incr, iniciar; Label mostra; int conta=0; public void init() { add(iniciar = new Button("Iniciar")); add(incr = new Button("Incrementar")); add(mostra = new Label(" "+0)); incr.addactionlistener(new TrataEv()); iniciar.addactionlistener(new TrataEv()); class TrataEv implements ActionListener { public void actionperformed(actionevent e) { Object botao = e.getsource(); if (botao == incr) conta++; else if (botao.equals(iniciar)) conta = 0; mostra.settext(" "+conta); 150

6 /* Construa uma applet que crie 3 botões. Cada botão muda a cor do fundo do applet para a cor designada no respectivo label. */ import java.awt.*; import java.awt.event.*; public class Cores extends java.applet.applet { Button verm, azul, verde; public void init() { setbackground(color.white); verm = new Button("Vermelho"); add(verm); verm.addactionlistener(new ProcessaBotao(Color.red)); azul = new Button("Azul"); add(azul); azul.addactionlistener(new ProcessaBotao(Color.blue)); verde = new Button("Verde"); add(verde); verde.addactionlistener(new ProcessaBotao(Color.green)); class ProcessaBotao implements ActionListener { Color cor; ProcessaBotao(Color c) { cor = c; public void actionperformed(actionevent e) { setbackground(cor); 151

7 3. Checkbox Checkbox componente gráfica de interface com o utilizador que tem 2 estados: checked ou unchecked (true ou false). Ao contrário dos botões, um Checkbox geralmente não desencadeia acções directas nas interfaces com o utilizador, mas é usado para indicar características opcionais de uma outra acção. Os Checkboxes podem ser usadas de 2 modos: Não exclusivos: dado um conjunto de Checkboxes qualquer um pode ser seleccionado. Exclusivas: dado um conjunto de Checkboxes só um pode ser seleccionado de cada vez. Este tipo de Checkboxes designam-se por radio boxes. Construtores dos Checkboxes não exclusivos: Checkbox() - cria um Checkbox vazio, não seleccionado. Checkbox(String s) - cria uma Checkbox tendo como label a string passada como parâmetro, inicialmente não seleccionado. Checkbox(String s, boolean state) - cria um Checkbox tendo como label a string passada como parâmetro e está seleccionado ou não conforme o valor do 2º argumento só Java 1.1. Métodos que permitem obter os parâmetros de um Checkbox ou modificá-los: void setstate(boolean state) coloca o estado do Checkbox no estado especificado no parâmetro. boolean getstate() - retorna um valor booleano representando o estado do Checkbox. void setlabel(string s) - coloca como label do Checkbox a string passada como parâmetro. String getlabel() - retorna o label da Checkbox ou null se não possuir label. Exemplo: Construa um applet que crie um textfield com o texto "Observe a mudança de estilo da fonte" e 2 checkboxes para mudar o estilo da fonte: um com o label "Bold" e outro com o label "Italic". Qualquer checkbox quando seleccionado deve resultar na aplicação desse estilo à fonte do textfield. import java.applet.applet; import java.awt.*; import java.awt.event.*; public class Checkbox1 extends Applet { Font f; TextField t; Checkbox bold, italic; 152

8 public void init() { t = new TextField( "Observe a mudança de estilo da fonte" ); f = new Font( "TimesRoman", Font.PLAIN, 14 ); t.setfont( f ); add( t ); bold = new Checkbox( "Bold" ); italic = new Checkbox( "Italic" ); add( bold ); add( italic ); TrataEv t = new TrataEv(); bold.additemlistener(t); italic.additemlistener(t); class TrataEv implements ItemListener { public void itemstatechanged( ItemEvent e ) { if (e.getsource() instanceof Checkbox) { int valbold = ( bold.getstate()? Font.BOLD : Font.PLAIN ); int valitalic = ( italic.getstate()? Font.ITALIC : Font.PLAIN ); f = new Font( "TimesRoman", valbold + valitalic, 14 ); t.setfont( f ); 4. Radio Buttons Radio Buttons componente gráfica de interface com o utilizador (GUI) constituído por um grupo de botões onde só um botão no grupo pode estar seleccionado. Seleccionando um qualquer botão força todos os outros botões do grupo a passarem ao estado não seleccionado. O nome radio buttons deriva dos antigos botões de selecção manual das estações de rádio. Quando se pressionava um botão, todos os outros saltavam e ficavam não seleccionados. Para criar um conjunto de radio buttons é necessário criar primeiro uma instância da classe CheckboxGroup: CheckboxGroup cbg = new CheckboxGroup(); 153

9 Em seguida criam-se radio buttons individuais, objectos da classe Checkbox, e adicionam-se ao conjunto. A criação de radio buttons individuais pertencentes a um determinado CheckboxGroup é efectuada pelo método: Checkbox(String s, boolean state, CheckboxGroup cbg) Estes construtores criam um radio button com o label s, pertencente ao CheckboxGroup cbg, e no estado seleccionado ou não conforme o valor do respectivo argumento. add(new Checkbox( Yes, cbg, true); add(new Checkbox( No, cbg, false); O último botão true a ser adicionado ao grupo será o seleccionado. Se por outro lado, se criar um conjunto de botões todos não seleccionados, inicialmente aparecerão não seleccionados. Exemplo: Construa um applet que crie um textfield com o texto "Observe a mudança de fonte" e um grupo de 3 "radio buttons" para mudar a fonte para Courier ou TimesRoman ou Helvetica. import java.awt.*; import java.awt.event.*; public class CheckboxGroup1 extends java.applet.applet { Font f; TextField t; CheckboxGroup cbg; Checkbox courier, timesroman, helvetica; public void init() { t = new TextField( "Observe a mudança de fonte" ); f = new Font( "TimesRoman", Font.PLAIN, 14 ); t.setfont( f ); add( t ); cbg = new CheckboxGroup(); add(courier = new Checkbox("Courier", cbg, false)); add(timesroman = new Checkbox("TimesRoman", cbg, true)); add(helvetica = new Checkbox("Helvetica", cbg, false)); TrataEv t = new TrataEv(); courier.additemlistener(t); timesroman.additemlistener(t); helvetica.additemlistener(t); 154

10 class TrataEv implements ItemListener { public void itemstatechanged( ItemEvent e ) { String fonte; if (e.getsource() instanceof Checkbox) { if (courier.getstate()) fonte = "Courier"; else if (timesroman.getstate()) fonte = "TimesRoman"; else fonte = "Helvetica"; f = new Font(fonte, Font.PLAIN, 14 ); t.setfont( f ); 5. TextField TextField campo de texto constituído por uma linha de texto na qual o utilizador pode digitar texto a partir do teclado ou simplesmente usada para mostrar texto. Quando o utilizador digita Enter num TextField um evento ACTION_EVENT é gerado e o texto digitado pode ser usado no programa. A classe TextField assim como a classe TextArea derivam da classe TextComponent que por sua vez deriva da classe Component, a qual deriva directamente de Object. Object Component TextComponent TextField TextArea 155

11 Construtores: TextField() TextField(int cols) - constrói um objecto textfield vazio. - constrói um objecto textfield vazio com o número especificado de colunas. TextField(String s) - constrói um objecto textfield inicializado com a string s. TextField(String s, int cols)- constrói um objecto textfield inicializado com a string s e com o número especificado de colunas. Métodos: void setechochar(char c) - coloca o carácter c à medida que o utilizador digita no textfield. Útil para entrar passwords. Métodos da classe TextComponent herdados pela classe TextField: void seteditable(boolean b) boolean iseditable() void settext(string s) String gettext() String getselectedtext() int getselectionstart() int getselectionend() - coloca o textfield editável (true) ou não (false). - retorna um valor booleano indicando se o campo de texto é editável. - coloca o texto s no campo de texto. - retorna a string do texto do campo de texto. - retorna a string do texto seleccionado. - retorna a posição do primeiro carácter seleccionado do campo de texto. - retorna a posição do último carácter seleccionado do campo de texto. void select(int selectionstart, int selectionend) - efectua a selecção de texto entre os limites especificados. void selectall() - selecciona todo o texto do campo de texto. Exemplo: import java.awt.*; import java.awt.event.*; import java.applet.applet; public class TextField1 extends Applet { TextField msg1, msg2, password; String s; public void init() { s = "lp2"; msg1 = new TextField("Digite a password:"); msg1.seteditable(false); password = new TextField(12); password.setechochar('*'); 156

12 msg2 = new TextField(30); msg2.seteditable(false); add(msg1); add(password); add(msg2); password.addactionlistener(new TrataEv()); public class TrataEv implements ActionListener { public void actionperformed(actionevent evt) { if (evt.getsource() instanceof TextField) if (evt.getsource() == password) if (password.gettext().equals(s)) msg2.settext("acesso permitido"); else msg2.settext("password invalida."); 6. TextArea TextArea área de edição de texto que pode ter mais que uma linha e scrollbars horizontal e vertical. Quando o utilizador digita Enter numa textarea um evento ACTION_EVENT é gerado e o texto digitado pode ser usado no programa. A classe TextArea assim como a classe TextField derivam da classe TextComponent. Construtores: TextArea() - constrói um objecto textarea vazio. TextArea(int rows, int cols) - constrói um objecto textarea vazio com o número de linhas e colunas especificado. TextArea(String texto) - constrói um objecto textarea inicializado com o texto especificado. TextArea(String texto, int rows, int cols) - constrói um objecto textarea inicializado com o texto, linhas e colunas especificados. 157

13 Métodos: void appendtext (String s) - acrescenta a string s ao texto existente na área de texto. void inserttext (String s, int pos) - insere a string s, a partir da posição especificada, ao texto existente na área de texto. void replacetext (String s, int start, int end) - substitui a parte do texto, entre as posições especificadas, pela string s. void setcolumns(int cols) - coloca o número de colunas no valor especificado. void setrows(int rows) - coloca o número de linhas no valor especificado. int getcolumns() - retorna o número de colunas na área de texto. int getrows() - retorna o número de linhas na área de texto. Métodos da classe TextComponent herdados pela classe TextArea: void seteditable(boolean b) boolean iseditable() void settext(string s) String gettext() String getselectedtext() int getselectionstart() int getselectionend() void select(int selstart, int selend) void selectall() Exemplo: Construa uma applet que crie dois textarea (com 5 linhas por 20 colunas visíveis) tendo o primeiro algum texto. Mostre através do incremento de um contador sempre que o texto é editado. Um botão "copiar" deve permitir copiar o texto seleccionado para o 2.º TextArea. import java.awt.*; import java.awt.event.*; public class TextArea1 extends java.applet.applet { private TextArea t1, t2; private Button copiar; private Label l; private int cont; public void init() { setbackground(color.white); String s = "Texto para ilustrar o funcionamento de \n um objecto TextArea."; t1 = new TextArea(s, 5, 20); add(t1); t1.addtextlistener(new TrataEvText()); add(copiar = new Button("Copiar")); copiar.addactionlistener(new TrataEvAction()); t2 = new TextArea(5, 20); 158

14 add(t2); add(l=new Label(" 0")); class TrataEvAction implements ActionListener { public void actionperformed(actionevent e) { t2.settext(t1.getselectedtext()); class TrataEvText implements TextListener { public void textvaluechanged(textevent e) { cont ++; l.settext(" " + cont); 7. Choice Choice lists componentes que mostram uma lista de itens permitindo a selecção de apenas um. Para criar uma choice list é necessário criar um objecto da classe Choice e em seguida adicionar os elementos da lista a esse objecto. Construtor: Choice() - constrói um objecto da classe Choice. Métodos: void add (String s) int countitems () String getitem(int pos) void select (int pos) void select (String s) int getselectedindex() String getselecteditem() - adiciona um item à choice list. - retorna o número de elementos da choice list. - retorna a string correspondente ao item especificado. - coloca o respectivo item seleccionado. - coloca o respectivo item seleccionado. - retorna o índice correspondente ao item seleccionado. - retorna a string correspondente ao item seleccionado. 159

15 Exemplo: Construa um applet que crie um textfield com o texto "Observe a mudança de fonte" e um choice com 3 itens para mudar a fonte para Courier ou TimesRoman ou Helvetica. import java.awt.*; import java.awt.event.*; public class Choice1 extends java.applet.applet { Font f; TextField t; Choice fontes; public void init() { t = new TextField( "Observe a mudança de fonte", 30 ); f = new Font( "TimesRoman", Font.PLAIN, 14 ); t.setfont( f ); add( t ); fontes = new Choice(); fontes.add("courier"); fontes.add("timesroman"); fontes.add("helvetica"); add(fontes); fontes.additemlistener(new TrataEv()); class TrataEv implements ItemListener { public void itemstatechanged( ItemEvent e ) { String fonte; if (e.getsource() instanceof Choice) { Choice c = (Choice) e.getsource(); fonte = c.getselecteditem(); f = new Font(fonte, Font.PLAIN, 14 ); t.setfont( f ); 160

16 8. List Scrolling List é uma lista de itens dos quais apenas uma quantidade fixa é mostrada, permitindo efectuar scrolling com scrollbar se necessário. Uma scrolling list pode permitir múltipla selecção. Um único clique num item selecciona o item, se não estava seleccionado, ou coloca o item não seleccionado se estava seleccionado. Métodos: String getselecteditems() retorna um array de Strings com os itens seleccionados. Um duplo clique num item cria um evento de acção. No modelo de eventos 1.1 o evento criado é do tipo ActionEvent e o método invocado é actionperformed(). Exemplo: Crie uma scrolling list com 10 nomes de países tendo apenas 5 visíveis, que permita múltiplas selecções. Crie ainda um botão designado Copiar >>> e outra scrolling list vazia com 5 itens visíveis.quando pressionado o botão devem ser copiados os itens seleccionados da 1.ª lista para a 2.ª. mport java.applet.applet; import java.awt.*; import java.awt.event.*; public class List1 extends Applet { private List listapaises, listacopia; private Button copiar; private String paises[] = { "Portugal", "Espanha", "E.U.A", "Inglaterra", "França", "Suíça", "Bélgica", "Holanda", "Alemanha", "China" ; public void init() { listapaises = new List( 5, true ); for ( int i = 0; i < paises.length; i++ ) listapaises.add( paises[ i ] ); add( listapaises ); copiar = new Button( "Copiar >>>" ); add( copiar ); copiar.addactionlistener(new TrataEv()); listacopia = new List( 5, false ); add( listacopia ); class TrataEv implements ActionListener { public void actionperformed( ActionEvent e) { String paisesc[]; if (e.getsource() == copiar) { paisesc = listapaises.getselecteditems(); for ( int i = 0; i < paisesc.length; i++ ) listacopia.add( paisesc[ i ] ); 161

17 Gestores de Posicionamento (Layout Manager) A forma como os componentes gráficos são colocados numa janela é controlada por um objecto designado gestor de posicionamento ( layout manager ). Antes de adicionar componentes gráficos a um objecto contentor (janela ou outros componentes gráficos contentores) deve-se instalar (nesse objecto contentor) um objecto gestor de posicionamneto. No entanto, como qualquer objecto contentor possui um determinado gestor de posicionamento por omissão, é possível adicionar componentes gráficos a um objecto contentor sem instalar um gestor de posicionamento, sendo nesse caso os componentes dispostos pelo gestor de posicionamento definido por omissão para esse contentor. A disposição dos componentes para a maior parte dos gestores é baseada na ordem pela qual os componentes são adicionados. Os gestores de posicionamento adaptam a disposição dos componentes às dimensões do applet ou da janela da aplicação. Se as dimensões da janela mudam, o tamanho, forma e colocação dos componentes pode mudar. As classes Applet e Frame são subclasses da classe Container. O método setlayout() da classe Container permite instalar um gestor de posicionamento. FlowLayout Este é o gestor de posicionamento por omissão para os applets. Corresponde a colocar os componentes fluindo da esquerda para a direita até que a linha de cima esteja cheia, depois passa para a linha seguinte continuando o fluxo de colocação dos componentes, do mesmo modo que as palavras de um texto numa página. Com FlowLayout os componentes tomam um tamanho natural, por exemplo, um botão terá o tamanho da string que constitui a respectiva etiqueta. 162

18 Para criar um gestor de posicionamento para um contentor é necessário criar uma instância de uma classe gestor de posicionamento ( layout manager ), e torná-lo o gestor do contentor com o método setlayout() da classe Container: FlowLayout fl = new FlowLayout(); setlayout(fl); Para um contentor applet (objecto da classe Applet) ou para um contentor panel (objecto da classe Panel que estudaremos adiante) o gestor de posicionamento por omissão é FlowLayout. Construtores: FlowLayout() FlowLayout(int align) - os componentes gráficos são alinhados ao centro. - define uma das três possíveis formas de alinhamento dos componentes: FlowLayout.CENTER, FlowLayout.LEFT ou FlowLayout.RIGHT. FlowLayout(int align, int hgap, int vgap) - define o tipo de alinhamento, o espaçamento horizontal e o espaçamento vertical entre os componentes gráficos. Exemplo: import java.awt.flowlayout; import java.awt.button; import java.awt.color; import java.applet.applet; public class FlowLayout1 extends Applet { Button b1 = new Button( Um ); Button b2 = new Button( Dois ); FlowLayout fl = new FlowLayout(); public void init() { setbackgroud(color.white); setlayout(fl); add(b1); add(b2); 163

19 GridLayout O gestor de posicionamento GridLayout divide o Container numa grelha com um dado número de linhas e de colunas e coloca os componentes da esquerda para a direita e de cima para baixo à medida que são adicionados. Para saltar células podem-se colocar componentes invisiveis, tais como new Label( ) ou new Panel(). Com GridLayout os componentes enchem o espaço disponível para eles em cada célula. Construtores: GridLayout(int rows, int cols) - cria um gestor de posicionamento especificando o número de linhas e o número de colunas. GridLayout(int rows, int cols, int hgap, int vgap) - cria um gestor de posicionamento especificando o número de linhas, o número de colunas, o espaçamento horizontal e vertical entre os componentes gráficos. Exemplo: import java.awt.gridlayout; import java.awt.button; import java.awt.color; import java.applet.applet; public class GridLayout1 extends Applet { Button b1 = new Button("1"); Button b2 = new Button("2"); Button b3 = new Button("3"); Button b4 = new Button("4"); Button b5 = new Button("5"); Button b6 = new Button("6"); Button b7 = new Button("7"); Button b8 = new Button("8"); Button b9 = new Button("9"); Button b0 = new Button("0"); GridLayout gl = new GridLayout(4, 3, 10, 10); public void init() { setbackground(color.white); setlayout(gl); add(b1); add(b2); add(b3); add(b4); add(b5); add(b6); add(b7); add(b8); add(b9); add(b0); 164

20 BorderLayout O gestor de posicionamento BorderLayout divide o Container em 5 secções: norte, sul, este, oeste e centro. Os componentes são adicionados usando uma chamada do método add() da classe Container diferente dos anteriores: add( String nome, Component comp); O primeiro argumento é uma string indicando que parte do BorderLayout é atribuída ao componente. O primeiro argumento pode ter 5 valores possíveis: North, South, East, West e Center. Construtores: BorderLayout() - cria um gestor de posicionamento com os espaçamentos standard entre os componentes. BorderLayout(int hgap, int vgap) - cria um gestor de posicionamento com os espaçamentos horizontais e verticais especificados. Exemplo: import java.applet.applet; public class BorderLayout1 extends Applet { Button norte= new Button("Célula Norte"); Button sul = new Button("Célula Sul"); Button este = new Button("Célula Este"); Button oeste = new Button("Célula Oeste"); Button centro = new Button("Célula Centro"); BorderLayout bl = new BorderLayout(3, 3); public void init() { setbackground(color.white); setlayout(bl); add("north", norte); add("south", sul); 165

21 add("east", este); add("west", oeste); add("center", centro); As secções norte e sul estendem-se do limite esquerdo ao limite direito do contentor e têm uma altura dependente do componente adicionado. As secções oeste e este têm uma largura dependente dos componentes adicionados, e a secção centro ocupa todo o espaço central. A cada secção só se pode adicionar um componente gráfico. A zona centro espande-se pelas secções vazias (sem componentes adicionados). Panel Um painel é um contentor que fornece espaço para agrupar componentes e tem o seu próprio gestor de posicionamento (layout manager). É uma estrutura invisível mas essencial para obter uma boa apresentação de um interface, devido ao facto de se poder escolher um gestor de posicionamento para o painel permitindo a adição de outros componentes gráficos ao painel e em seguida inserir o painel num contentor (sendo a posição do painel determinada pelo gestor de posicionamneto do contentor). Abreviadamente pode-se inserir painéis no interior dos layouts e layouts dentro de painéis. Ainda é possível misturar painéis e outros componentes dispostos por um mesmo gestor de posicionamento num contentor. O gestor de posicionamento por omissão para um painel é o gestor FlowLayout. Os componentes devem ser colocados no painel antes dele ser posto num contentor maior. Um painel é um contentor que não tem a sua própria janela tem de estar contido dentro de outro qualquer contentor Exemplo de construção de um painel, colocação de gestor de posicionamento e adicionamento de dois botões: 166

22 BorderLayout bl = new BorderLayout(); Panel p = new Panel(); p.setlayout(bl); Button botão1= new Button( Botão 1 ); Button botão2= new Button( Botão 2 ); p.add( North, botão1); p.add( Center, botão2); Há 4 classes usadas normalmente para contentores: Frame Dialog Panel Applet - é uma janela do nível mais alto que pode conter uma barra de menus, um cursor e ícone próprios. - é uma janela de diálogo. - é um contentor sem janela própria. - é uma janela. Ao contrário de dialog e frame, panel é um contentor que não cria uma janela separada própria, tem de estar contido dentro de outro contentor. Panel é adequado para conter porções de um interface maior dentro de um frame, ou dialog ou dentro de outro panel. CardLayout É um gestor de posicionamento em que os componentes são mostrados um de cada vez. Só um cartão ( card ) é visível estando os outros escondidos. Muitas vezes este gestor de posicionamento é usado criando um painel para cada cartão. Neste caso é necessário, em primeiro lugar, adicionar alguns componentes a cada painel (usando qualquer gestor de posicionamento) e só depois os painéis são adicionados ao contentor (container) que usa o gestor de posicionamento CardLayout. A mudança de cartão visível só pode ser desencadeada pelo programa. No entanto a acção do utilizador noutro componente gráfico, pode desencadear no programa a acção de mudar o cartão visível. Com este gestor obtém-se a possibilidade de ter diferentes forms que podem surgir ( pop up ) comandadas pelo programa. Exemplo de CardLayout e Panel Construa um applet contendo 3 objectos gráficos (botões) dispostos pelo gestor CardLayout. Para efectuar a mudança de cartão visível crie também 3 botões que quando pressionados tornam visível o respectivo cartão. import java.awt.*; import java.awt.event.*; import java.applet.applet; 167

23 public class CardLayoutTest extends Applet { Button primeiro = new Button("Primeiro"), segundo = new Button("Segundo"), terceiro = new Button("Terceiro"); Panel p2; CardLayout cl; public void init() { setlayout(new BorderLayout()); Panel p1 = new Panel(); p1.setlayout(new FlowLayout()); p1.add(primeiro); p1.add(segundo); p1.add(terceiro); add("north", p1); TrataEv t = new TrataEv(); primeiro.addactionlistener(t); segundo.addactionlistener(t); terceiro.addactionlistener(t); p2 = new Panel(); p2.setlayout(cl=new CardLayout()); p2.add("primeiro cartão", new Button("O primeiro cartão")); p2.add("segundo cartão", new Button("O segundo cartão")); p2.add("terceiro cartão", new Button("O terceiro cartão")); add("center", p2); class TrataEv implements ActionListener { public void actionperformed(actionevent evt) { if (evt.getsource().equals(primeiro)) cl.first(p2); else if (evt.getsource().equals(segundo)) { cl.first(p2); cl.next(p2); else if (evt.getsource().equals(terceiro)) cl.last(cartões); 168

24 Canvas Um componente canvas representa uma área rectangular do ecrã na qual uma aplicação pode desenhar ou a partir da qual a aplicação pode capturar eventos do utilizador. Canvas é uma área de desenho que pode receber eventos. A classe Canvas herda da classe Componente. Construtor: public Canvas() - cria um objecto canvas. Métodos: public void paint(graphics g) Se pretendermos usar o método paint() num objecto da classe Canvas, temos de criar uma subclasse de Canvas para reescrever o método paint(). Nestes casos uma aplicação deve criar uma subclasse de Canvas para obter funcionalidade útil (reescrevendo o método paint() para realizar operações gráficas) e criar componentes próprios. No entanto, o exemplo que apresentamos a seguir não necessitou de criar uma subclasse de Canvas porque não usa o método paint(). Desenhar num objecto canvas realiza-se a partir do canto superior esquerdo do canvas. Exemplo de Canvas import java.awt.*; import java.awt.event.*; import java.applet.*; public class CanvasTest extends Applet { BorderLayout bl = new BorderLayout(); Label l = new Label("Sarrabiscos"); Canvas c = new Canvas(); int x, y; Graphics g; public void init() { setlayout(bl); add("north", l); add("center", c); c.setbackground(color.yellow); c.addmouselistener(new ListenerMA()); c.addmousemotionlistener(new ListenerMMA()); g = c.getgraphics(); class ListenerMA extends MouseAdapter { public void mousepressed(mouseevent evt) { x = evt.getx(); y = evt.gety(); 169

25 class ListenerMMA extends MouseMotionAdapter { public void mousedragged(mouseevent evt) { int x1 = evt.getx(); int y1 = evt.gety(); g.drawline(x, y, x1, y1); x = x1; y = y1; Os métodos de desenho (neste exemplo drawline()) são chamados no objecto da classe Graphics e não no objecto canvas, porque o objecto da classe Graphics enviado ao método paint() (não usado neste exemplo), assim como o retornado por getgraphics() contem o contexto gráfico do componente e portanto trata de todas as operações de desenho que têm lugar nesse componente. Como os objectos listeners estão registados no componente canvas as coordenadas onde ocorrem os eventos sõ relativas ao canto superior esquerdo do componente canvas. A acção dos métodos mousepressed() e mousedragged() devem aplicar-se ao contexto gráfico do objecto Canvas para funcionarem apenas no objecto c (canvas). Se fossem aplicados globalmente actuariam sobre toda a janela do applet. Exemplo de Panel e Canvas Construa um applet que apresente 3 formas (instrumentos) de desenho: Linha, Rectângulo e Oval, uma palette de 6 cores: Preto, Branco, Vermelho, Azul, Verde e Amarelo e uma área de desenho onde arrastando o rato pode desenhar linhas, rectângulos ou ovais de uma qualquer das cores da palette conforme o instrumento de desenho e cor previamente seleccionados. import java.awt.*; import java.awt.event.*; import java.applet.*; 170

26 public class Desenhar extends Applet { Panel instrumentos, palette; Button linha, rect, oval; Button preto, branco, vermelho, azul, verde, amarelo; Canvas1 areadesenho; public void init() { setlayout(new BorderLayout()); palette = new Panel(); palette.setlayout(new GridLayout(2,3,5,5)); preto = new Button("Preto"); branco = new Button("Branco"); vermelho = new Button("Vermelho"); azul = new Button("Azul"); verde = new Button("Verde"); amarelo = new Button("Amarelo"); palette.add(preto); palette.add(branco); palette.add(vermelho); palette.add(azul); palette.add(verde); palette.add(amarelo); add("south", palette); TrataEv t = new TrataEv(); preto.addactionlistener(t); branco.addactionlistener(t); vermelho.addactionlistener(t); azul.addactionlistener(t); verde.addactionlistener(t); amarelo.addactionlistener(t); instrumentos = new Panel(); instrumentos.setlayout(new GridLayout(3,1,5,5)); linha = new Button("Linha"); rect = new Button("Rectângulo"); oval = new Button("Oval"); instrumentos.add(linha); instrumentos.add(rect); instrumentos.add(oval); add("west", instrumentos); linha.addactionlistener(t); rect.addactionlistener(t); oval.addactionlistener(t); areadesenho = new Canvas1(Color.black, 0); add("center", areadesenho); validate(); class TrataEv implements ActionListener { public void actionperformed(actionevent evt) { Object source = evt.getsource(); if (source == linha) areadesenho.instr = 0; if (source == rect) areadesenho.instr = 1; if (source == oval) areadesenho.instr = 2; if (source == preto) areadesenho.cor = Color.black; if (source == branco) areadesenho.cor = Color.white; if (source == vermelho) areadesenho.cor = Color.red; 171

27 if (source == azul) areadesenho.cor = Color.blue; if (source == verde) areadesenho.cor = Color.green; if (source == amarelo) areadesenho.cor = Color.yellow; class Canvas1 extends Canvas { Color cor; int instr; int x, y, x1, y1; public Canvas1(Color c, int inst) { cor = c; instr = inst; addmouselistener(new ListenerMA()); addmousemotionlistener(new ListenerMMA()); class ListenerMA extends MouseAdapter { public void mousepressed(mouseevent evt) { x = evt.getx(); y = evt.gety(); class ListenerMMA extends MouseMotionAdapter { public void mousedragged(mouseevent evt) { x1 = evt.getx(); y1 = evt.gety(); repaint(); public void paint(graphics g) { g.setcolor(cor); if (instr == 0) g.drawline(x, y, x1, y1); else if (instr == 1) g.fillrect(x, y, x1-x, y1-y); else if (instr == 2) g.filloval(x, y, x1-x, y1-y); 172

28 Os métodos mousepressed, mousedragged e paint devem aplicar-se ao contexto gráfico do objecto Canvas1 para funcionarem apenas no objecto areadesenho. Se estivessem definidos globalmente actuariam sobre toda a janela do applet. Frame Um frame é uma janela do nível mais alto com um título e um bordo. Um frame pode ter uma barra de menus. Construtores: public Frame() - constrói um frame inicialmente invisível e sem título. public Frame(String título) - constrói um frame inicialmente invisível e com o título especificado. Métodos: public void settitle(string título) - coloca o título deste frame no título especificado. public String gettitle() - retorna o título do frame ou null se o frame não tem título. Exemplo de criação de um frame a partir de um applet public class AppletFrame extends java.applet.applet { Frame window; public void init() { Button b1 = new Button("Open Window"); Button b2 = new Button("Close Window"); add(b1); add(b2); b1.addactionlistener(new TrataEv(true)); b2.addactionlistener(new TrataEv(false)); window = new Frame("Uma janela solta"); window.setlayout(new BorderLayout()); 173

29 Label l = new Label("Isto é uma janela", Label.CENTER); l.setfont(new Font("TimesRoman", Font.PLAIN, 14)); window.add("center", l); window.setsize(150,150); window.show(); class TrataEv implements ActionListener { boolean mostrar = true; public TrataEv(boolean m) { mostrar = m; public void actionperformed(actionevent evt) { if (evt.getsource() instanceof Button) { if (mostrar) { if (!window.isshowing()) window.show(); // necessario estas chavetas - porquê? else if (window.isshowing()) window.hide(); Criação de Aplicações com Interface Gráfico com o Utilizador (GUI Graphical user Interface) São poucas as diferenças entre um applet Java e uma aplicação gráfica para além do ambiente em que cada um corre. Os métodos gráficos, os componentes de interface com o utilizador, eventos, janelas e caixas de diálogo podem ser usados do mesmo modo em aplicações Java como em applets. As aplicações têm a vantagem de não estarem sujeitas às restrições dos applets. 174

30 Para criar uma aplicação gráfica Java, geralmente a classe principal da aplicação é uma subclasse de Frame. Dentro do método main() da aplicação cria-se uma nova (new) instância da classe (subclasse de Frame), o que nos dá uma nova janela AWT, a qual podemos redimensionar (setsize()) e tornar visível (show()) de um modo idêntico a qualquer janela AWT. Dentro do método construtor desta classe deve-se colocar o título, adicionar o gestor de disposição, criar, configurar e adicionar componentes de um modo semelhante ao que se fazia no método init() de um applet. Exemplo de uma aplicação gráfica Construa uma aplicação que crie 2 botões: um para iniciar e outro para incrementar um contador cujo valor deve ser mostrado num label. import java.awt.*; import java.awt.event.*; public class ApliContador extends Frame { Button incr, iniciar; Label mostra; int conta=0; public ApliContador(String titulo) { super(titulo); setlayout(new FlowLayout()); add(iniciar = new Button("Iniciar")); add(incr = new Button("Incrementar")); add(mostra = new Label(" "+0)); addwindowlistener(new Terminator()); TrataEv t = new TrataEv(); incr.addactionlistener(t); iniciar.addactionlistener(t); class TrataEv implements ActionListener { public void actionperformed(actionevent e) { Object botao = e.getsource(); if (botao == incr) conta++; else if (botao.equals(iniciar)) conta = 0; mostra.settext(" "+conta); class Terminator extends WindowAdapter { public void windowclosing(windowevent e) { System.exit(0); 175

31 public static void main(string args[]) { ApliContador apl = new ApliContador("Aplicação Gráfica: Contador"); apl.setsize(300, 300); apl.show(); Outros exemplos de aplicações gráficas: import java.awt.*; import java.awt.event.*; public class Scribble5 extends Frame { private int x, y; public Scribble5() { settitle("janela para Sarrabiscar"); setsize(300, 200); addwindowlistener(new Terminator()); addmouselistener(new ListenerMA()); addmousemotionlistener(new ListenerMMA()); class ListenerMA extends MouseAdapter { public void mousepressed(mouseevent e) { x = e.getx(); y = e.gety(); class ListenerMMA extends MouseMotionAdapter { public void mousedragged(mouseevent e) { Graphics g = getgraphics(); int x1= e.getx(); int y1= e.gety(); g.drawline(x, y, x1, y1); x = x1; y = y1; class Terminator extends WindowAdapter { public void windowclosing(windowevent e) { System.exit(0); 176

32 public static void main(string[] args) { Frame jan = new Scribble15(); jan.show(); // Construa uma aplicacao que crie uma janela com 3 botões. // Cada botão muda a cor do fundo da janela para a cor do respectivo label. import java.awt.*; import java.awt.event.*; public class Cores3 extends Frame { Button verm, azul, verde; public Cores3() { settitle("janela com Botoes"); setlayout(new FlowLayout()); setsize(300, 200); addwindowlistener( new Terminator()); setbackground(color.white); verm = new Button("Vermelho"); add(verm); verm.addactionlistener(new ProcessaBotao(Color.red)); azul = new Button("Azul"); add(azul); azul.addactionlistener(new ProcessaBotao(Color.blue)); verde = new Button("Verde"); add(verde); verde.addactionlistener(new ProcessaBotao(Color.green)); class ProcessaBotao implements ActionListener { Color cor; ProcessaBotao(Color c) { cor = c; public void actionperformed(actionevent e) { setbackground(cor); class Terminator extends WindowAdapter { public void windowclosing(windowevent e) { System.exit(0); public static void main(string[] args) { Frame jan = new Cores3(); jan.show(); 177

33 Frame Um frame é uma janela do nível mais alto com um título e um bordo. Um frame pode ter uma barra de menus. Construtores: public Frame() - constrói um frame inicialmente invsível e sem título. public Frame(String título) - constrói um frame inicialmente invisível e com o título especificado. Métodos: void settitle(string título) - coloca o título deste frame no título especificado. String gettitle() - retorna o título do frame ou null se o frame não tem título. void setmenubar(menubar mb) - coloca a barra de menus deste frame na barra de menus especificada. MenuBar getmenubar() - retorna a barra de menus para este frame, ou null, se o frame não tem uma barra de menus. void setresizable(boolean resizable) determina se este frame pode ser redimensionável. Por omissão um frame é redimensionável. void isresizable(boolean resizable) indica se este frame é redimensionável. void remove(menucomponent m) remove a barra de menus especificada. MenuBar (subclasse de MenuComponent) Esta classe encapsula o conceito de plataforma de uma barra de menus ligada a um frame. Para ligar uma barra de menus a um frame deve-se chamar o método setmenubar() da classe Frame. Construtor: public MenuBar() cria uma nova barra de menus. Métodos: Menu add(menu m) adiciona o menu especificado à barra de menus. Retorna o menu adicionado int countmenus() retorna o número de menus na barra de menus. Menu getmenu(int i) retorna o menu da barra de menus na posição especificada. void remove(int index) remove da barra de menus o menu localizado no índice especificado. void remove(menucomponent m) remove da barra de menus o menu especificado. 178

34 Menu Um menu é um componente pull-down de uma barra de menus. Cada item num menu pertence à classe MenuItem. Cada item pode ser uma instância de MenuItem, um submenu (uma instância de Menu) ou um checkbox (uma instância de CheckboxMenuItem). Construtores: public Menu(String label) constrói um novo menu com o label especificado. public Menu(String label, boolean tearoff) constrói um novo menu com o label especificado. Se o 2.º argumento é true o menu permanece no ecrã depois do rato ter sido libertado. Métodos: MenuItem add(menuitem mi) adiciona o item de menu especificado a este menu. Se o item de menu é parte de outro menu, remove-o desse menu. Retorna o item de menu adicionado. void add(string label) adiciona um item com o label especificado a este menu. MenuItem getitem(int index) retorna o item localizado no índice especificado deste menu. void remove(menucomponent item) apaga o item de menu especificado deste menu. Se o item não é parte do menu, nada acontece. void remove(int index) apaga o item do índice especificado neste menu. int countitems() retorna o número de elementos deste menu. void addseparator() adiciona uma linha separadora a este menu na posição corrente. boolean istearoff() retorna true se é um menu tear-off. MenuItem (subclasse de MenuComponent) Todos os itens de um menu devem pertencer à classe MenuItem ou a uma subclasse. No modelo de eventos 1.1 quando um item de um menu é seleccionado, um evento de acção é enviado para o listener registado no menu item, e o método actionperformed() é chamado. A subclasse Menu reescreve este comportamento e não envia qualquer evento para o frame até que um dos seus subitens esteja seleccionado. Construtores: public MenuItem(String label) constrói um novo item de menu com o label especificado. O label - constrói um separador entre os itens. Por omissão todos os itens do menu excepto os separadores são seleccionáveis pelo utilizador. 179

35 Métodos: void setlabel(string label) muda o label do item deste menu para o label especificado. String getlabel() retorna o label deste item do menu ou null se este item do menu não tem label. void enable() torna o item do menu seleccionável pelo utilizador. void disable() torna o item do menu não seleccionável. void enable(boolen sel) torna o item do menu seleccionável ou não. boolean isenabled() verifica se o item do menu é seleccionável. Exemplo: /* Construa uma aplicação que crie uma janela com 3 botões, e uma barra de menus com um menu constituído por 3 itens. A selecção de um botão ou de um item permite mudar a cor fundo da janela para a cor designada no respectivo label. */ import java.awt.*; import java.awt.event.*; public class MultSources extends Frame { private Button verm, azul, verde; public MultSources() { settitle("multiple Event Sources"); setlayout(new FlowLayout()); setsize(300, 200); addwindowlistener( new Terminator()); Menu m = new Menu("Cores"); MenuItem vermitem = new MenuItem("Vermelho"); m.add(vermitem); vermitem.addactionlistener(pbverm); MenuItem azulitem = new MenuItem("Azul"); m.add(azulitem); azulitem.addactionlistener(pbazul); MenuItem verditem = new MenuItem("Verde"); m.add(verditem); verditem.addactionlistener(pbverd); MenuBar mbar = new MenuBar(); mbar.add(m); setmenubar(mbar); setbackground(color.white); verm = new Button("Vermelho"); add(verm); verm.addactionlistener(pbverm); azul = new Button("Azul"); add(azul); 180

36 azul.addactionlistener(pbazul); verde = new Button("Verde"); add(verde); verde.addactionlistener(pbverd); class ProcessaBotao implements ActionListener { Color cor; ProcessaBotao(Color c) { cor = c; public void actionperformed(actionevent e) { setbackground(cor); class Terminator extends WindowAdapter { public void windowclosing(windowevent e) { System.exit(0); public static void main(string[] args) { Frame jan = new MultSources(); jan.show(); 181

37 // Construa uma aplicacao que crie uma janela com 2 botões // Um botão cria novas janelas enquanto que o outro fecha todas as janelas. import java.awt.*; import java.awt.event.*; public class MultListeners extends Frame { private Button nova, fechatodas; private int contador = 0; public MultListeners() { settitle("multiplos Listeners"); setlayout(new FlowLayout()); setsize(300, 200); addwindowlistener( new Terminator()); nova = new Button("Nova Janela"); add(nova); nova.addactionlistener(new NovaJanela()); fechatodas = new Button("Fecha Todas"); add(fechatodas); class NovaJanela implements ActionListener { public void actionperformed(actionevent e) { Frame f = new Frame(); contador ++; f.settitle("janela n. " + contador); f.setsize(200, 150); f.setlocation(30*contador, 50+30*contador); f.show(); fechatodas.addactionlistener(new FechaJanela(f)); class FechaJanela implements ActionListener { private Frame jan; public FechaJanela(Frame f) { jan = f; public void actionperformed(actionevent e) { jan.dispose(); class Terminator extends WindowAdapter { public void windowclosing(windowevent e) { System.exit(0); public static void main(string[] args) { Frame jan = new MultListeners(); jan.show(); 182

38 Dialog (subclasse de Window) Esta classe representa uma caixa de diálogo, uma janela que recebe input do utilizador. As caixas de diálogo destinam-se a ser janelas temporárias, que apresentam informação específica ao utilizador ou que permitem ao utilizador especificar opções para a actividade corrente. Cada caixa de diálogo deve pertencer a um Frame. Na criação de uma caixa de diálogo é necessário a indicação de qual é o seu parent frame. Uma caixa de diálogo pode ser ou não modal. Uma caixa de diálogo modal bloqueia todos os eventos para outras janelas forçando a que o utilizador elimine esta janela. Todos os eventos de rato, teclado e foco que ocorrem sobre a janela de diálogo são enviados para o objecto Dialog. Quando criada é invisível, pelo que a aplicação deve usar o método show() para fazer aparecer a caixa de diálogo. O gestor de posicionamento ( layout manager ) por omissão para uma caixa de diálogo é o BorderLayout. Construtores: public Dialog(Frame parent, boolean modal) - cria uma caixa de diálogo inicialmente invisível. parent é o frame a que a janela dialog está associada. O 2.º argumento deve ser true se se pretende que a janela seja do tipo modal ou false se a janela não deve ser modal. public Dialog(Frame parent, String title, boolean modal) - cria caixa de diálogo com o título especificado. 183

39 Métodos: String gettitle() - retorna o título desta caixa de diálogo. boolean ismodal() - retorna true se esta caixa de diálogo é modal, false se não é. void settitle() - coloca o título desta caixa de diálogo. FileDialog (subclasse de Dialog) Esta classe representa uma caixa de diálogo na qual o utilizador pode seleccionar um ficheiro. Como é uma caixa de diálogo modal, após a execução do método show() bloqueia o resto da aplicação até que o utilizador escolha o ficheiro. public class java.awt.filedialog extends java.awt.dialog Constantes estáticas inteiras: public static final int LOAD; public static final int SAVE; LOAD indica que a caixa de diálogo se destina a determinar o ficheiro para leitura. SAVE indica que a caixa de diálogo se destina a determinar o ficheiro para escrita. Construtores: public Dialog(Frame parent, String title) - cria uma caixa de diálogo com o título especificado para carregar um ficheiro. Os ficheiros mostrados são os do directório corrente. public Dialog(Frame parent, String title, int mode) - cria uma caixa de diálogo com o título especificado para carregar ou gravar um ficheiro. O argumento mode deve ter o valor LOAD ou SAVE. Métodos: public String getdirectory() retorna o directório corrente. public String getfile() retorna o ficheiro seleccionado ou null se nenhum está seleccionado. Window (subclasse de Container) Um window é uma janela do nível mais alto. Não tem bordo nem barra de menu nem o atributo modal. Necessita, tal como a Dialog, de um parent frame. Pode ser usada para implementar menus pop-up. O layout por omissão para um window é BorderLayout. Construtor: public Window(Frame parent) constrói uma janela nova invisível. A janela comportase como modal bloqueando input para outras janelas da aplicação. O método show() torna a janela visível. 184

Programação III. Interface Gráfica - Swing. Interface Gráfica Swing Jocélio Passos joceliodpassos@bol.com.br. Interface Gráfica - Swing

Programação III. Interface Gráfica - Swing. Interface Gráfica Swing Jocélio Passos joceliodpassos@bol.com.br. Interface Gráfica - Swing Programação III Interface Gráfica Swing Jocélio Passos joceliodpassos@bol.com.br Deitel Capítulo 11 : Imagens gráficas e Java 2D Capítulo 12 : Componentes Básicos Capítulo 13 : Componentes Avançados GUI

Leia mais

Aplicações Gráficas com AWT

Aplicações Gráficas com AWT Aplicações Gráficas com AWT O AWT fornece um conjunto de elementos de interface gráfica padrão (botões, janelas, menus, campos de edição, campos de seleção e outros) incluindo o sistema de tratamento de

Leia mais

Arquitetura de Tratamento de Eventos em Programas com GUI - Graphical User Interface

Arquitetura de Tratamento de Eventos em Programas com GUI - Graphical User Interface Arquitetura de Tratamento de Eventos em Programas com GUI - Graphical User Interface Jorge H. C. Fernandes (jorge@dimap.ufrn.br) UFRN Abril de 2002 Programas com GUI Separação De Abstrações Arquitetura

Leia mais

Interface Gráfica. LPG II Java Interface Gráfica AWT. Introdução. AWT - Abstract Window Toolkit

Interface Gráfica. LPG II Java Interface Gráfica AWT. Introdução. AWT - Abstract Window Toolkit Interface Gráfica LPG II Java Interface Gráfica AWT Introdução AWT Construção de uma Aplicação Gráfica A Classe Componente e sua Hierarquia Gerenciadores de Layout Modelo de Eventos Componentes Básicos

Leia mais

Programação Gráfica em Java.

Programação Gráfica em Java. Programação Gráfica em Java. Objetivo: Ao final da aula o aluno deverá ser capaz de desenvolver a aplicação gráfica ilustrada ao lado. A interface gráfica será simples, composta por elementos de menus.

Leia mais

Tratamento de Eventos

Tratamento de Eventos Tratamento de Eventos Prof. Marcelo Cohen 1. Visão Geral Para implementar a funcionalidade de uma interface gráfica, pode-se fazer uso de uma repetição sem fim: Faz algum processamento Verifica se o mouse

Leia mais

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame 6. Como aplicações gráficas funcionam em Java? Todas as aplicações gráficas em Java usam instâncias de classes existentes, que por serem parte da linguagem podem ser executadas em todas as versões de Java

Leia mais

Módulo 7. Interface Gráfica com o Usuário GUI - Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)

Módulo 7. Interface Gráfica com o Usuário GUI - Introdução. Programação Orientada a Objetos I Java (Rone Ilídio) Módulo 7 Interface Gráfica com o Usuário GUI - Introdução Programação Orientada a Objetos I Java (Rone Ilídio) Interface Gráfica com o Usuário Os elementos gráficos utilizados estão no pacote javax.swing.*

Leia mais

JAVA. Marcio de Carvalho Victorino. Interface Gráfica em Java (GUI)

JAVA. Marcio de Carvalho Victorino. Interface Gráfica em Java (GUI) JAVA Marcio de Carvalho Victorino 1 Interface Gráfica em Java (GUI) 1 2 Introdução Java fornece um forte suporte para a construção de interfaces gráficas através do pacote java.awt GUI inicial do Java:

Leia mais

Adicionando Caixas de Verificação no seu Programa Java

Adicionando Caixas de Verificação no seu Programa Java Adicionando Caixas de Verificação no seu Programa Java Priscila Gomes Neste tutorial iremos falar sobre os aspectos básicos de uma caixa de verificação: quais os tipos, quando e como utiliza-las, como

Leia mais

Interfaces Gráficas: Interações Complexas

Interfaces Gráficas: Interações Complexas Interfaces Gráficas: 21 Interações Complexas 21.5 O contexto gráfico Os componentes de uma interface gráfica são desenhados na tela do computador a partir de primitivas que permitem a construção de linhas,

Leia mais

1) De acordo com o trecho de código escrito na linguagem JAVA, responda a questão abaixo:

1) De acordo com o trecho de código escrito na linguagem JAVA, responda a questão abaixo: 1) De acordo com o trecho de código escrito na linguagem JAVA, responda a questão abaixo: boolean[][] bool = new boolean[5][5]; for(int v = 0; v < bool.length; v++) { for(int f = 0; f < bool[v].length;

Leia mais

Programação Orientada a Objetos II

Programação Orientada a Objetos II Programação Orientada a Objetos II Interfaces Márcio Alves de Macêdo Baseado no material de: ime.usp Cronograma Pacotes gráficos da linguagem Java Container AWT Component AWT Pacotes gráficos A linguagem

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido

Leia mais

O AMBIENTE DE TRABALHO DO WINDOWS

O AMBIENTE DE TRABALHO DO WINDOWS O AMBIENTE DE TRABALHO DO WINDOWS O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador. Um computador que tenha o Windows instalado, quando arranca, entra directamente

Leia mais

Caso não exista nenhum listener registado no objecto que gera o evento, este não terá qualquer efeito.

Caso não exista nenhum listener registado no objecto que gera o evento, este não terá qualquer efeito. Interfaces Gráficas e Eventos - 10 Programação por eventos Um evento ocorre quando o utilizador interage com um objecto gráfico:. manipular um botão com o rato;. introduzir texto num campo de texto. seleccionar

Leia mais

Swing. Page 1. Swing. Prof. Anderson Augustinho Uniandrade

Swing. Page 1. Swing. Prof. Anderson Augustinho Uniandrade Page 1 API A API renderiza/desenha por conta própria todos os componentes visuais, ao invés de delegar essa tarefa ao sistema operacional, como a maioria das outras APIs de interface gráfica trabalham.

Leia mais

AWT Versus Swing. Java Deployment Course: Aula 5. por Jorge H C Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Recife, 1999

AWT Versus Swing. Java Deployment Course: Aula 5. por Jorge H C Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Recife, 1999 AWT Versus Swing Java Deployment Course: Aula 5 por Jorge H C Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Recife, 1999 AWT Versus Swing Java TM is a trademark of Sun Microsystems. Swing images where taken

Leia mais

Interface Gráficas Parte I. Bruno Crestani Calegaro

Interface Gráficas Parte I. Bruno Crestani Calegaro Interface Gráficas Parte I Bruno Crestani Calegaro Conteúdo da Aula GUI, Graphical User Interface, é nada mais que a tela que um programa apresenta para um usuário Até o agora nossos programas foram desenvolvidos

Leia mais

MÓDULO 4 SWING Parte 3

MÓDULO 4 SWING Parte 3 Aplicações de Linguagem de Programação Orientada a Objetos 2ºsem/2011 (Professores: Tiago e Daniele) // Exemplo11 Ação do Mouse import javax.swing.*; import java.awt.*; import java.awt.event.actionevent;

Leia mais

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho

Leia mais

FIGURA. 2.2 ECRÃ DE TRABALHO

FIGURA. 2.2 ECRÃ DE TRABALHO Noções Básicas FIGURA. 2.2 ECRÃ DE TRABALHO 2.2.1 Painel de Tarefas (Task Pane) O painel de tarefas constitui a grande novidade do ecrã de trabalho desta nova versão do Word. Para utilizadores menos experientes,

Leia mais

Gestão de eventos do Rato e teclado

Gestão de eventos do Rato e teclado Programação Na Web Gestão de eventos do Rato e teclado 1 António Gonçalves Agenda Estratégia Geral de gestão de eventos Gestão de eventos em listeners distintos Gestão de eventos através do uso de interfaces

Leia mais

Java AWT Objectos e Eventos. Label Button TextField Checkbox RadioButton Combobox

Java AWT Objectos e Eventos. Label Button TextField Checkbox RadioButton Combobox Java AWT Objectos e Eventos Label Button TextField Checkbox RadioButton Combobox Label Construtores: Label() Label(String) Label(String, int) onde int=label.center/right/left Métodos setvisible(boolean)

Leia mais

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira MICROSOFT ACCESS MICROSOFT ACCESS Professor Rafael Vieira Professor Rafael Vieira - Access - Programa de base de dados relacional funciona em Windows Elementos de uma Base de Dados: Tabelas Consultas Formulários

Leia mais

Aula 11: Interfaces gráficas (1/2): elementos de interface Swing

Aula 11: Interfaces gráficas (1/2): elementos de interface Swing Aula 11: Interfaces gráficas (1/2): elementos de interface Swing Motivação como fazer programas com interface gráfica em Java? solução: uso de pacotes (listados na API) AWT (java.awt.*) Swing (javax.swing.*)

Leia mais

WINDOWS. O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador.

WINDOWS. O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador. WINDOWS O AMBIENTE DE TRABALHO DO WINDOWS O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador. Um computador que tenha o Windows instalado, quando arranca, entra directamente

Leia mais

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011 Manual Profissional BackOffice Mapa de Mesas v2011 1 1. Índice 2. Introdução... 2 3. Iniciar ZSRest Backoffice... 3 4. Confirmar desenho de mesas... 4 b) Activar mapa de mesas... 4 c) Zonas... 4 5. Desenhar

Leia mais

Gerenciadores de Layouts

Gerenciadores de Layouts Gerenciadores de Layouts João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 1.1 Última Atualização 04 / 2005 1 Objetivos Apresentar os gerenciadores de layouts FlowLayout BorderLayout GridLayout BoxLayout

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 08 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos

Leia mais

Programação Visual em Java

Programação Visual em Java Programação Visual em Java 1 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos 2 Introdução Interfaces gráficas são compostas por: Contentores Janelas, painéis Componentes botões, menus,

Leia mais

GeoMafra Portal Geográfico

GeoMafra Portal Geográfico GeoMafra Portal Geográfico Nova versão do site GeoMafra Toda a informação municipal... à distância de um clique! O projecto GeoMafra constitui uma ferramenta de trabalho que visa melhorar e homogeneizar

Leia mais

INTERFACE COM O USUÁRIO (em Java) Programação Orientada a Objetos

INTERFACE COM O USUÁRIO (em Java) Programação Orientada a Objetos INTERFACE COM O USUÁRIO (em Java) Programação Orientada a Objetos Chegamos à interface com o usuário. Você já utilizou alguns métodos para dialogar com o usuário, quer enviando mensagens quer lendo dados.

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 03 GUI e Swing Edirlei Soares de Lima GUI Graphical User Interface A API Java fornece diversas classes destinadas a criação de interfaces gráficas.

Leia mais

Programação Orientada a Objetos em Java. GUI Graphical User Interface

Programação Orientada a Objetos em Java. GUI Graphical User Interface Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java GUI Graphical User Interface Professor: César Melo Slides baseados

Leia mais

Gerenciadores de Layout Parte 1

Gerenciadores de Layout Parte 1 Gerenciadores de Layout Parte 1 1. Objetivos Os gerenciadores de layout têm a função de definir o layout a ser usado num componente gráfico, com um painel ou um frame, isto é, o gerenciador permite dividir

Leia mais

Interface Gráfica com o Usuário (GUI) Profa. Isabel Harb Manssour (Material adaptado das aulas da Profa. Luciana Nedel e do Prof.

Interface Gráfica com o Usuário (GUI) Profa. Isabel Harb Manssour (Material adaptado das aulas da Profa. Luciana Nedel e do Prof. Interface Gráfica com o Usuário (GUI) Profa. Isabel Harb Manssour (Material adaptado das aulas da Profa. Luciana Nedel e do Prof. Julio Machado) GUI (Graphical User Interface) Containers e Componentes

Leia mais

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

UNIDADE 2: Sistema Operativo em Ambiente Gráfico Ambiente Gráfico Configurações Acessórios O Sistema Operativo (SO) é o conjunto de programas fundamentais que permitem que o computador funcione e que comunique com o exterior. Actualmente o Windows é

Leia mais

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes Programação Orientada a Objetos e Java - Introdução Carlos Lopes POO e Java Objetivo: proporcionar uma visão dos conceitos de POO e do seu uso na estruturação dos programas em Java. Classes e objetos em

Leia mais

Especialização em Engenharia de Software - CEUT

Especialização em Engenharia de Software - CEUT Até aqui Programação com interfaces gráficas Sérgio Soares scbs@cin.ufpe.br Criamos a infra-estrutura para a aplicação bancária classes que representam os tipos de conta classe que implementa regras de

Leia mais

GeoMafra SIG Municipal

GeoMafra SIG Municipal GeoMafra SIG Municipal Nova versão do site GeoMafra Toda a informação municipal... à distância de um clique! O projecto GeoMafra constitui uma ferramenta de trabalho que visa melhorar e homogeneizar a

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 2. Programação visual com a IDE Netbeans Projetos Tipos de projetos Desenvolvimento

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:

Leia mais

Aplicações versus Applets

Aplicações versus Applets Aplicações versus Applets Há duas maneiras diferentes de correr um programa Java: Como Aplicação: programa independente e autónomo ( stand-alone ) que pode ser invocado da linha de comandos. Como Applet:

Leia mais

Criação de Applets Package: Class Name Base Class: Generate header comments: Can run standalone: Generate Standard methods:

Criação de Applets Package: Class Name Base Class: Generate header comments: Can run standalone: Generate Standard methods: Criação de Applets Após ter sido criado o projeto, ao contrário dos exemplos anteriores onde criávamos uma aplicação na guia General da janela Object Gallery, agora iremos criar uma applet que está contida

Leia mais

Os elementos básicos do Word

Os elementos básicos do Word Os elementos básicos do Word 1 Barra de Menus: Permite aceder aos diferentes menus. Barra de ferramentas-padrão As ferramentas de acesso a Ficheiros: Ficheiro novo, Abertura de um documento existente e

Leia mais

Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs

Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs Interfaces Gráficas e Eventos - 1 Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs - Utilizar as classes JFrame, JButton, JLabel, ImageIcon,

Leia mais

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO DOMINE A 110% ACCESS 2010 A VISTA BACKSTAGE Assim que é activado o Access, é visualizado o ecrã principal de acesso na nova vista Backstage. Após aceder ao Access 2010, no canto superior esquerdo do Friso,

Leia mais

ESCOLA ESTADAL DE EDUCAÇÃO PROFISSIONAL EM ESTRELA CURSO TÉCNICO DE INFORMÁTICA LABORATÓRIO DE PROGRAMAÇÃO III ORIENTAÇÃO À OBJETO

ESCOLA ESTADAL DE EDUCAÇÃO PROFISSIONAL EM ESTRELA CURSO TÉCNICO DE INFORMÁTICA LABORATÓRIO DE PROGRAMAÇÃO III ORIENTAÇÃO À OBJETO ESCOLA ESTADAL DE EDUCAÇÃO PROFISSIONAL EM ESTRELA CURSO TÉCNICO DE INFORMÁTICA LABORATÓRIO DE PROGRAMAÇÃO III ORIENTAÇÃO À OBJETO JAVA ABSTRACT WINDOWING TOOLKIT 2 ÍNDICE 1 APLICAÇÕES GRÁFICAS COM A AWT...3

Leia mais

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Pacotes: Swing, AWT Janelas de diálogo: JOptionPane Formulários: JFrame Etiquetas: JLabel Caixas de texto simples: JTextField Botões: JButton Menus: JMenuXXX Tratamento

Leia mais

Manipulação de Células, linhas e Colunas

Manipulação de Células, linhas e Colunas Manipulação de Células, linhas e Colunas Seleccionar células Uma vez introduzidos os dados numa folha de cálculo, podemos querer efectuar alterações em relação a esses dados, como, por exemplo: apagar,

Leia mais

Ambiente de trabalho. Configurações. Acessórios

Ambiente de trabalho. Configurações. Acessórios Ambiente de trabalho Configurações Acessórios O Sistema Operativo (SO) é o conjunto de programas fundamentais que permitem que o computador funcione e comunique com o exterior. Actualmente, o Windows é

Leia mais

Encerrando Introdução a Objetos e Classes Redefinição de Métodos (1)

Encerrando Introdução a Objetos e Classes Redefinição de Métodos (1) Encerrando Introdução a Objetos e Classes Redefinição de Métodos (1) Overriding x Overload Métodos de diferentes classes que possuem uma relação de herança. Métodos possuem mesmo nome, mesma assinatura

Leia mais

Tarefa 18: Criar Tabelas Dinâmicas a partir de Listas de Excel

Tarefa 18: Criar Tabelas Dinâmicas a partir de Listas de Excel Tarefa 18: Criar Tabelas Dinâmicas a partir de 1. Alguns conceitos sobre Tabelas Dinâmicas Com tabelas dinâmicas podemos criar dinâmica e imediatamente resumos de uma lista Excel ou de uma base de dados

Leia mais

8. Interfaces Gráficas de Usuário

8. Interfaces Gráficas de Usuário Vamos discutir como construir aplicações com interface gráfica de usuário (conhecida como GUI - Graphical User Interface). Numa interface gráfica existem botões, caixas de texto, painéis, barras de rolagem,

Leia mais

Tarefa Orientada 2 Criar uma base de dados

Tarefa Orientada 2 Criar uma base de dados Tarefa Orientada 2 Criar uma base de dados Objectivos: Criar uma base de dados vazia. O Sistema de Gestão de Bases de Dados MS Access Criar uma base dados vazia O Access é um Sistema de Gestão de Bases

Leia mais

Sistema Operativo em Ambiente Gráfico

Sistema Operativo em Ambiente Gráfico Sistema Operativo em Ambiente Gráfico Sistema Operativo Conjunto de programas fundamentais que permitem que o computador funcione e comunique com o exterior; Windows: sistema operativo mais utilizado nos

Leia mais

Oficina de Construção de Páginas Web

Oficina de Construção de Páginas Web COMPETÊNCIAS BÁSICAS EM TIC NAS EB1 Oficina de Construção de Páginas Web Criação e Publicação Actividades de exploração Objectivo Explorar as funcionalidades essenciais do Programa, na perspectiva da construção/actualização

Leia mais

1 2 3 W O R K S H O P 4 5 6 W O R K S H O P 7 W O R K S H O P 8 9 10 Instruções gerais para a realização das Propostas de Actividades Para conhecer em pormenor o INTERFACE DO FRONTPAGE clique aqui 11 CONSTRUÇÃO

Leia mais

HTML - 7. Vitor Vaz da Silva Paula Graça

HTML - 7. Vitor Vaz da Silva Paula Graça HTML - 7 Vitor Vaz da Silva Paula Graça 1 Formulários Os formulários forms no HTML, são utilizados para a introdução de dados de uma determinada aplicação Os programas JavaScript têm como um dos seus maiores

Leia mais

Natureza do Software e dos Sistemas

Natureza do Software e dos Sistemas Natureza do Software e dos Sistemas Jorge H C Fernandes Diferença Fundamental entre Engenharia de Software e outras Engenharias! Os materiais são diferentes As teorias fundamentais são diferentes Dificuldades

Leia mais

O WINDOWS 98 é um sistema operacional gráfico, multitarefa, produzido pela Microsoft.

O WINDOWS 98 é um sistema operacional gráfico, multitarefa, produzido pela Microsoft. WINDOWS O WINDOWS 98 é um sistema operacional gráfico, multitarefa, produzido pela Microsoft. Área de Trabalho Ligada a máquina e concluída a etapa de inicialização, aparecerá uma tela, cujo plano de fundo

Leia mais

Copyright 2008 GrupoPIE Portugal, S.A.

Copyright 2008 GrupoPIE Portugal, S.A. WinREST Sensor Log A Restauração do Séc. XXI WinREST Sensor Log Copyright 2008 GrupoPIE Portugal, S.A. 2 WinREST Sensor Log Índice Índice Pag. 1. WinREST Sensor Log...5 1.1. Instalação (aplicação ou serviço)...6

Leia mais

Interface com o Usuário (UI) UIs Desacopladas (2/3) BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos

Interface com o Usuário (UI) UIs Desacopladas (2/3) BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Interface com o Usuário (UI) BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta nassau_cursos@yahoo.com.br

Leia mais

{ System.exit(0); Exemplo (WindowAdapter) import java.awt.*; import java.awt.event.*;

{ System.exit(0); Exemplo (WindowAdapter) import java.awt.*; import java.awt.event.*; Aula XVI Apesar da aparência, a janela não é fechada quando acionamos a opção fechar. Isto ocorre porque não existem métodos processadores de eventos capazes de receber tal mensagem encerrando a aplicação.

Leia mais

Microsoft Office FrontPage 2003

Microsoft Office FrontPage 2003 Instituto Politécnico de Tomar Escola Superior de Gestão Área Interdepartamental de Tecnologias de Informação e Comunicação Microsoft Office FrontPage 2003 1 Microsoft Office FrontPage 2003 O Microsoft

Leia mais

O programa abaixo exemplifica o uso da classe Image para carregar e mostrar uma imagem localizada em um arquivo.

O programa abaixo exemplifica o uso da classe Image para carregar e mostrar uma imagem localizada em um arquivo. 7. Carregando e mostrando imagens locais Esta aula complementa os estudos de programação de interfaces gráficas em Java mostrando como podemos carregar imagens de arquivos locais ou da Internet para uso

Leia mais

Java Foundation Classes Coleção de pacotes para criação de aplicações completas Desktop Interfaces gráficas (GUIs- Graphical User Interface)

Java Foundation Classes Coleção de pacotes para criação de aplicações completas Desktop Interfaces gráficas (GUIs- Graphical User Interface) Interface Gráfica Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos JFC Java Foundation Classes Coleção de pacotes para criação de aplicações completas Desktop Interfaces gráficas

Leia mais

Conceitos importantes

Conceitos importantes Conceitos importantes Informática Informação + Automática Tratamento ou processamento da informação, utilizando meios automáticos. Computador (Provem da palavra latina: computare, que significa contar)

Leia mais

JAVA APLICAÇÕES GRÁFICAS Propriedade Utilizada: FontSizeAnimation

JAVA APLICAÇÕES GRÁFICAS Propriedade Utilizada: FontSizeAnimation JAVA APLICAÇÕES GRÁFICAS Propriedade Utilizada: FontSizeAnimation FACULDADE DE TECNOLOGIA SENAC PELOTAS Nome do aluno: Paulo Renato S. Veiga Identificação da Turma: 205 Noite Data: 16/05/10 1 Nome da Propriedade

Leia mais

Capítulo Tabelas e Gráficos

Capítulo Tabelas e Gráficos Capítulo O menu de tabelas e gráficos torna possível criar tabelas numéricas de funções guardadas na memória. Poderá também utilizar funções múltiplas para criar tabelas. Como utiliza a mesma lista de

Leia mais

Usando o Excel ESTATÍSTICA. A Janela do Excel 2007. Barra de título. Barra de menus. Barra de ferramentas padrão e de formatação.

Usando o Excel ESTATÍSTICA. A Janela do Excel 2007. Barra de título. Barra de menus. Barra de ferramentas padrão e de formatação. Barra de deslocamento ESTATÍSTICA Barra de menus Barra de título Barra de ferramentas padrão e de formatação Barra de fórmulas Conjuntos e Células (Intervalos) Área de trabalho Separador de folhas Barra

Leia mais

Configuração do Ambiente de Trabalho

Configuração do Ambiente de Trabalho pag. 1 Configuração do Ambiente de Trabalho 1. Utilização da Área de Trabalho Criação de Atalhos: O Windows NT apresenta um Ambiente de Trabalho flexível, adaptável às necessidades e preferências do utilizador.

Leia mais

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

UNIDADE 2: Sistema Operativo em Ambiente Gráfico UNIDADE 2: Sistema Operativo em Ambiente Gráfico Ambiente de trabalho Configurações Acessórios O Sistema Operativo (SO) é o conjunto de programas fundamentais que permitem que o computador funcione e comunique

Leia mais

Prof. Responsáveis Wagner Santos C. de Jesus

Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Estudos do pacote awt ; Classe Frame;Estrutura básica de implementação de uma iterface gráfica;criação de container para posicionamento

Leia mais

Tarefa Orientada 18 Tabelas dinâmicas

Tarefa Orientada 18 Tabelas dinâmicas Tarefa Orientada 18 Tabelas dinâmicas Análise de dados através de tabelas dinâmicas. Conceitos teóricos As Tabelas Dinâmicas são tabelas interactivas que resumem elevadas quantidades de dados, usando estrutura

Leia mais

Construção de Interfaces Gráficas

Construção de Interfaces Gráficas Construção de Interfaces Gráficas Mário Antonio Meireles Teixeira DEINF UFMA Baseado em material original de João Carlos Pinheiro CEFET/MA 1 Objetivos Apresentar Os fundamentos da construção GUI em Java

Leia mais

MANUAL DO UTILIZADOR

MANUAL DO UTILIZADOR MANUAL DO UTILIZADOR Versão 1.6 PÁGINA DE PESQUISA A página principal do PacWeb permite a realização de um número muito variado de pesquisas, simples, ou pelo contrário extremamente complexas, dependendo

Leia mais

Interface Gráfica. Prof. Marcelo Cohen. (material da Profa. Luciana Nedel) Graphical User Interface (GUI)

Interface Gráfica. Prof. Marcelo Cohen. (material da Profa. Luciana Nedel) Graphical User Interface (GUI) Interface Gráfica Prof. Marcelo Cohen (material da Profa. Luciana Nedel) 1 Graphical User Interface (GUI) Existe uma infinidade de funcionalidades disponíveis nas bibliotecas de classes Java, destinadas

Leia mais

Criar um formulário do tipo Diálogo modal ; Alterar a cor de fundo de um formulário; Inserir botões de comando e caixas de texto;

Criar um formulário do tipo Diálogo modal ; Alterar a cor de fundo de um formulário; Inserir botões de comando e caixas de texto; FICHA OBJECTIVO Construir Construir formulários na base de dados Diplomas em Diário da República Um formulário é utilizado, em primeiro lugar, para introduzir, eliminar ou apresentar dados numa base de

Leia mais

Formador: Carlos Maia

Formador: Carlos Maia Formador: Carlos Maia Iniciar o MS Excel MS Excel - Introdução 1 Ajuda Se ainda não estiver visível a ajuda do Excel do lado direito do ecrã, basta clicar sobre Ajuda do Microsoft Excel no menu Ajuda,

Leia mais

Curso Java Starter. www.t2ti.com 1

Curso Java Starter. www.t2ti.com 1 1 Apresentação O Curso Java Starter foi projetado com o objetivo de ajudar àquelas pessoas que têm uma base de lógica de programação e desejam entrar no mercado de trabalho sabendo Java, A estrutura do

Leia mais

Centro de Competência Entre Mar e Serra. Guia

Centro de Competência Entre Mar e Serra. Guia SMART Notebook Software Guia O Software Notebook permite criar, organizar e guardar notas num quadro interactivo SMART Board (em modo projectado e não-projectado), num computador pessoal e, em seguida,

Leia mais

Desenvolvendo aplicações

Desenvolvendo aplicações Desenvolvendo aplicações 22 para a Web Uma aplicação Java pode ser executada sem modificação em qualquer plataforma que tenha a máquina virtual Java instalada. Esta característica faz com que as aplicações

Leia mais

APONTAMENTOS SOBRE WINDOWS

APONTAMENTOS SOBRE WINDOWS APONTAMENTOS SOBRE WINDOWS Moldura da janela 1 1. JANELAS As janelas são objectos fundamentais do interface gráfico, já que é a partir delas que a informação, comandos e controlos são organizados e apresentados

Leia mais

Professor Sérgio Furgeri

Professor Sérgio Furgeri Professor Sérgio Furgeri IPEP 2001 Indice Analítico 1.0. Componentes do Pacote AWT e criação de Applets... 01 1.1. Ciclo de vida de uma Applet...01 1.2. Uso de Botões... 03 1.3. Uso do campo texto... 04

Leia mais

SAMUO APP: MANUAL DO ADMINISTRADOR

SAMUO APP: MANUAL DO ADMINISTRADOR as novas tecnologias ao serviço do desenvolvimento de projectos w w w. i m a d i p. c o m CABO VERDE: REALIZAÇÃO DE UMA ACÇÃO- PILOTO PARA A MELHORIA DA GESTÃO NUM GABINETE TÉCNICO SELECCIONADO OFITEC

Leia mais

1 Code::Blocks Criação de projetos

1 Code::Blocks Criação de projetos Programação MEEC Índice 1Code::Blocks Criação de projetos...1 2Code::Blocks Localização do projeto...5 3Code::Blocks Abertura de projetos já existentes...7 4Code::Blocks Funcionamento...8 5Code::Blocks

Leia mais

ou ainda ser chamado um método que pertença a um objeto, que pertence ao objeto em causa:

ou ainda ser chamado um método que pertença a um objeto, que pertence ao objeto em causa: OBJETOS, CLASSES E MÉTODOS 83 Esta sintaxe também é válida no caso em que existe encadeamento de objetos, uma vez que dentro de um objeto podem existir outros objetos. Nesse caso, continuam a usar-se pontos

Leia mais

Ferramenta de Testagem IECL Orientações para o Aluno (PT)

Ferramenta de Testagem IECL Orientações para o Aluno (PT) Ferramenta de Testagem IECL Orientações para o Aluno (PT) Índice 1 INTRODUÇÃO 3 2 REALIZAÇÃO DOS TESTES 3 2.1 Login 3 2.2 Verificação do áudio para o teste de Audição 5 2.3 Realização de um teste 5 3 Informação

Leia mais

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos Indice Indice... 2 1. Introdução... 3 2. Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos (SILOGR)....

Leia mais

8. Perguntas e Respostas

8. Perguntas e Respostas Arquimedes Manual do Utilizador 185 8. Perguntas e Respostas 8.1. Aparência Para conservar a disposição na qual estão expostas as B.D. no ecrã e para que em posteriores sessões de trabalho tenham a mesma

Leia mais

2ª Edição revista e atualizada Versão 2 do software invento Abril 2010. Novas Funcionalidades da Versão 2 do invento

2ª Edição revista e atualizada Versão 2 do software invento Abril 2010. Novas Funcionalidades da Versão 2 do invento NOVAS FUNCIONALIDADES NA VERSÃO 2 DO INVENTO NOVAS FUNCIONALIDADES NA VERSÃO 2 DO INVENTO FICHA TÉCNICA Título Novas Funcionalidades da Versão 2 do invento Título original New Features in Communicate:

Leia mais

Neste tutorial irá criar uma animação simples com base num desenho do Mechanical Desktop.

Neste tutorial irá criar uma animação simples com base num desenho do Mechanical Desktop. Neste tutorial irá criar uma animação simples com base num desenho do Mechanical Desktop. Inicialize o 3D Studio VIZ. Faça duplo clique no ícone de 3D Studio VIZ Abre-se a janela da figura seguinte. Esta

Leia mais

Manual de Utilização. Site Manager. Tecnologia ao serviço do Mundo Rural

Manual de Utilização. Site Manager. Tecnologia ao serviço do Mundo Rural Manual de Utilização Site Manager Tecnologia ao serviço do Mundo Rural Índice 1. Acesso ao Site Manager...3 2. Construção/Alteração do Menu Principal...4 3. Inserção/ Alteração de Conteúdos...7 4. Upload

Leia mais

MICROSOFT POWERPOINT

MICROSOFT POWERPOINT MICROSOFT POWERPOINT CRIAÇÃO DE APRESENTAÇÕES. O QUE É O POWERPOINT? O Microsoft PowerPoint é uma aplicação que permite a criação de slides de ecrã, com cores, imagens, e objectos de outras aplicações,

Leia mais

PROGRAMAÇÃO Microsoft WINDOWS XP

PROGRAMAÇÃO Microsoft WINDOWS XP Mais que um Sistema Operativo, o MS-Windows é um ambiente de trabalho que simula no ecrã o trabalho diário sobre uma secretária. A ideia base do MS-Windows foi a de esconder a organização do MS-DOS e apresentar

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais