Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Aula 01 < > Essas bibliotecas são fornecidas pelo JFC (Java Foundation Classes) Container (Componente gráfico) - Suporta outro componente dentro - Armazena COMPONENTES • SwingConstantsCENTER, • SwingConstantsHORIZONTAL, • SwingConstantsVERTICAL, • SwingConstantsLEADING, • SwingConstantsTRAILING, • SwingConstantsNORTH EAST, • SwingConstantsNORTH WEST, • SwingConstantsSOUTH WEST, • SwingConstantsSOUTH EAST, • SwingConstantsRIGHT, • SwingConstantsLEFT OK Bolajava BOTÕES Jbutton JCheckBox JRadioButton JTextField JTextArea JScrollPane Jslider JComboBox MENUS Jmenu Interfaces Gráficas com Swing 4 - Aplicar as Interfaces, criando menus em exemplos e exercícios 3 - Utilizar interfaces gráficas interagindo com objetos e classes previamente definidos O Java fornece uma infinidade de funcionalidades para prover comunicação humano-computado, ou melhor, para desenvolver interfaces São fornecidas duas bibliotecas para desenvolver um GUI Elas são: Quando um ITEM é selecionado, é gerado um ItemEvent O mesmo pode ser tratado por um OBJETO que implemente a INTERFACE ItemListener; javaxswing : Swing Componets – Fornece um conjunto de components alternativos, mais funcionais que os conjuntos fornecidos pela javaawt Java - Revisão de Interfaces gráficas com Swing 1 - Explorar o pacote Swing para desenvolver Interfaces em Java PRINCIPAIS COMPONENTES (os componentes swing vêm com um J na frente) javaawt (Abstract Window Toolkit) - classes básicas: Componentes "pesados" - Para desenhar, utilizava muito do SO, a interface no Windows ficava muito diferente no Linux, por ex Por conta disso, a partir da extensão AWT, foi desenvolvida a API swing Javaxswing - Componentes "leves", mais distância do SO, interface mais comum ao se mudar o SO 2 - Criar e manipular Menus As interfaces gráficas em Java javaawt : Abstract Window Toolkit (classes básicas); É um marcador que desliza entre um intervalo de inteiros, podendo selecionar qualquer valor de marca de medida em que repouse A aderência às marcas (snap to ticks) possibilita ao marcador aderir à marca mais próxima Responde ao mouse e teclad Orientação pode ser vertical ou horizontal As posições de mínimo e máximo podem ser invertidas com o MÉTODO setInvert(boolean) Lista de valores ou opções Também é possível digitar nas linhas de uma ComboBox, implementadas com a CLASSE JComboBox, herdada de JComponent Geram ItemEvents como as CheckBoxes São anexados à BARRA DE MENUS com o MÉTODO add(Jmenu) de JMenuBar A CLASSE JMenuBar Fornece os métodos necessários ao gerenciamento da barra onde os menus são anexados Jpanel - São elementos que fazem a intermediaçãoentre um CONTAINER e os demais GUI anexados Servem para definir grupos de componentes visuais também COMPONENTES Classe JRadioButton Quando um está ON, os outros estão OFF Compreende a área de única linha, que suporta inserção ou exibição de texto Pode-se definir se o texto é manipulável pelo MÉTODO setEditable(boolean), utilizando o argumento true Quando o usuário digita um texto em uma JTextField e pressiona ENTER, ocorre um EVENTO de ação, que pode ser tratado por um OBJETO que implemente a INTERFACE ItemListener; Área dimensionável que permite múltiplas linhas editadas com a mesma fonte Classe HERDADA de JTextComponent, que define métodos comuns para JTextField e JTextArea, além de outros GUI baseados em texto Pode-se configurar um texto com setText(string) ou acrescentar texto com o MÉTODO append(string) Para evitar-se que um longo texto fique incluso em somente uma linha, usa-se o MÉTODO setLineWrap(boolean), que define a quebra ao alcançar a borda de JTextArea O problema é que as palavras podem ficar quebradas sem regras gramaticais Uma forma paliativa de resolver isso é invocar o MÉTODO setWrapStyleWord(boolean), que determina que a mudança de linha deja definida pelas palavras Objetos dessa classe fornecem a capacidade de rolagem a componentes da classe Jcomponent quando necessitam de mais epaço para exibir dados JScrollPane(Component, Int, Int) e o construtor mais elaborado e recebe um component JTextArea, por exemplo, como primeiro argumento, definindo qual será o cliente JScrollPane, ou seja, para que membro serão fornecidas as barras de rolagem Os dois próximos argumentos definem o comportamento da barra VERTICAL e HORIZONTAL, respectivamente Usa-se as constantes definidas na INTERFACE JScrollPaneConstants, que é implementada por JScrollPane JScrollPaneVERTICAL SCROLLBAR AS NEEDED - Aparecem somente quando necessário JScrollPaneVERTICAL SCROLLBAR ALWAYS - Aparecem somente quando necessário Na imagem podemos ver a hierarquia das classes das bibliotecas gráficas JLabel - São rótulos estáticos que, geralmente, apresentam funcionalidades de outros componentes GUI, como por exemplo, campos de texto, ícones etc Também, serve para apresentar um pequeno texto As instruções são mostradas por meio de uma linha de texto: somente leitura, uma imagem ou ambas O construtor mais elaborado é JLabel (String, Icon, int) Os argumentos representam o rótulo a ser exibido, um ícone e o alinhamento, respectivamente Também, é possível a exibição de ícones em muito dos componentes Swing Para JLabels, basta especificar um arquivo com extensão png, gif ou jpg no segundo argumento do construtor do JLabel, ou utilizar o método setIcon(Icon), o arquivo da imagem algumNomexxx deve encontrar-se no mesmo diretório do programa, ou especifica- se corretamente a estrutura de diretórios até ele As constantes SwingConstants, que definem o posicionamento de vários componentes GUI e aqui, são apropriadas ao terceiro argumento, determinam a locação do ícone em relação ao texto São elas: • SwingConstantsNORTH, • SwingConstantsSOUTH, • SwingConstantsEAST, • SwingConstantsWEST, • SwingConstantsTOP, • SwingConstantsBOTTOM, Utilizando o NetBeans, crie um projeto como um novo aplicativo Java Dentro desse aplicativo, crie um novo formulário JFrame Dê o nome de Aula7Swingjava Coloque um JLabel no frame e coloque o nome desejado que apareça Execute o arquivo para ver o resultado public static void main(String[] args) { // TODO code application logic here JFrame formulario = new JFrame(); JLabel rotulo = new JLabel("Exemplo de Label"); formulariosetLocation(100, 100); formulariosetSize(500, 200); formulariosetDefaultCloseOperation(JFrameEXIT_ON_CLOSE); formularioadd(rotulo); formulariosetVisible(true); } } É um dos componentes mais familiares e intuitivos ao usuário São criados com a CLASSE Jbutton e seu pressionamento geralmente DISPARA A AÇÃO especificada em seu rótulo, que também suporta a exibição de pequenas imagens Ao pressionar o botão, é gerado um EVENTO ActionEvent que, juntamente com outros eventos, executam algum comando desejado Jbutton, JCheckBox, JRadioButton, JTextField (1 linha), JPasswordField, JTextArea (multilinhas), JComboBox Componentes atômicos (Não suportma outros componentes dentro Botões, labels, textFields, sliders, check boxes, scrollbars Container - É uma CLASSE ABSTRATA que DEFINE AS FUNCIONALIDADES básicas associadas a um container, tais como adicionar e remover componentes (métodos add() e remove() Também é possível ESTABELECER QUAL ESTRATÉGIA de disposição de componentes no container, ou seja, qual o método de gerência de layout (método setLayout() ) Jframe - Define objetos que são utilizados para criar aplicativos baseados em GUI Consistem em uma janela com barra de título e uma borda Java - Revisão de Interfaces gráficas com Swing JScrollPaneVERTICAL SCROLLBAR NEVER - Aparecem somente quando necessário JScrollPaneConstants É possível configurar o comportamento om os MÉTODOS setVerticalScrollBarPolicy(int) e setHorizontalScrollBarPolicy(int) Tem comportamente semelhate a um botão rel, ao pressionarmos, executa uma ação Para se criar um botão, deve-se estanciar uma das muitas classes que descendem da CLASSE AbstractButton, que define muitos dos recursos comuns aos botões SWING COMO INSTANCIAR Devemos usar o operador new NomeDaClasse nomeDoObjeto = new NomeDaClasse(); Bola objeto = new Bola(); Bola bolaDoJoao = new Bola(); Bola minhaBola = new Bola(); minhaBolaraio=0,40; minhaBolaoca=true; minhaBolacor=1; // Definido como integer public class Bola{ // Atributos float raio; boolean oca; int material; int cor; } EXERCÍCIOS AULA 01 1 08 Q 01 ERROS 07 ACERTOS 87,5 a b c d e 1 2 2 1 1 2 a b c d e X 2 a configuração do tamanho original do componente b retorna tamanho ou largura do componente c x NÃO EXISTE d retorna o tamanho do componente em tempo de exec e retorna a posição relativa ao container 3 a x b Controle gráfico que altera com o SO c d e 4 a b c d x e 5 a x b c d E e 6 a b x c d e 7 a b c d e x 8 a b x c d e PRÁTICA - AULA 01 import javaxswingJFrame; import javaxswingJLabel; // swing import javaxswingJPanel;import javaxswingJTextField; import javaxswingJPasswordField; import javaxswingJRadioButton; import javaxswingJCheckBox;import javaxswingJComboBox; import javaxswingJButton;import javaxswingButtonGroup; import javaxswingImageIcon; import javaxswingborderTitledBorder; import javaxswingborderLineBorder; import javaawtFont; import javaawtColor; //awt import javaawteventActionEvent; import javaawteventActionListener;import javaawtImage; public class TelaCadastro extends JFrame implements ActionListener{ private JLabel lblTitulo = null; private JLabel lblNome = null; private JLabel lblEmail = null; private JLabel lblSexo = null; private JLabel lblSenha = null; private JLabel lblEstilo = null; private JLabel lblTimeFut = null; private JTextField txtNome = null; private JTextField txtEmail = null; private JPasswordField pwdSenha; private JRadioButton rdbMasculino = null; private JRadioButton rdbFeminino = null; private JCheckBox chkEsportes = null; private JCheckBox chkEducacao = null; private JCheckBox chkCulinaria = null; private JComboBox cmbTimesFut = null; private JButton btnEnviar = null; private ButtonGroup tipoSexo = null; public TelaCadastro() { ull; private JButton btnEnviar = null; pri inicializaComponentes(); @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" Color CORFUNDO = new Color(153, 255, 153); JFrame formulario = new JFrame(); Font fTit = new Font("Arial", FontBOLD, 16); formulariosetLocation(400, 100); formulariosetSize(450, 450); formulariosetDefaultCloseOperation(JFrameEXIT_ON_CLOSE); JLabel imgLogo= new JLabel(); imgLogosetBounds(2,2,58, 58); imgLogosetHorizontalAlignment(JLabelCENTER); imgLogosetBackground(CORFUNDO); // ImageIcon logoJava = new ImageIcon( TelaCadastroclassgetResource("/imagens/Java_Logopjpg")); Image lJava =logoJavagetImage()getScaledInstance(imgLogo getWidth(),imgLogogetHeight(),ImageSCALE_SMOOTH); imgLogosetIcon(new ImageIcon(lJava)); JLabel txtTitulo=new JLabel ("Cadastro de Clientes");//Titulo txtTitulosetBounds(0,25,450,20); txtTitulosetFont(fTit); txtTitulosetHorizontalAlignment(JLabelCENTER); JLabel lblNome = new JLabel("Nome:"); lblNomesetBounds(30,100,100,20); lblNomesetHorizontalAlignment(JLabelRIGHT); JTextField txtNome = new JTextField(); txtNomesetBounds(135,100,180,20); JLabel lblEmail = new JLabel("e-mail:"); lblEmailsetHorizontalAlignment(JLabelRIGHT); JTextField txtEmail = new JTextField(); txtEmailsetBounds(135,125,180, 20); JLabel lblSenha = new JLabel("Senha:"); lblSenhasetBounds(30,150,100, 20); lblSenhasetHorizontalAlignment(JLabelRIGHT); JPasswordField pwdSenha = new JPasswordField(); pwdSenhasetBounds(135,150,180, 20); JLabel lblSexo = new JLabel("Sexo:"); lblSexosetBounds(30,175,100, 20); lblSexosetHorizontalAlignment(JLabelRIGHT); JRadioButton rdbMasculino = new JRadioButton("Masculino", false); rdbMasculinosetBounds(131,175,100, 20); JRadioButton rdbFeminino = new JRadioButton("Feminino", false); rdbFemininosetBounds(240,175,100, 20); ButtonGroup tipoSexo = new ButtonGroup(); tipoSexoadd(rdbMasculino); tipoSexoadd(rdbFeminino); JLabel lblEstilo = new JLabel("Estilo de Leitura:"); lblEstilosetBounds(30,210,100, 20); lblEstilosetHorizontalAlignment(JLabelRIGHT); JCheckBox chkEsportes = new JCheckBox("Esportes", false); chkEsportessetBounds(131,210,150, 20); JCheckBox chkEducacao = new JCheckBox("Educação", false); chkEducacaosetBounds(131,235,150, 20); JCheckBox chkCulinaria = new JCheckBox("Culinária", false); chkCulinariasetBounds(131,260,150, 20); JLabel lblTimeFut = new JLabel("Time de Futebol:"); lblTimeFutsetBounds(30,300,100, 20); lblTimeFutsetHorizontalAlignment(JLabelRIGHT); JComboBox cmbTimesFut = new JComboBox(); cmbTimesFutsetBounds(133,300,178, 20); JButton btnEnviar= new JButton("Enviar"); // Botão Enviar btnEnviaraddActionListener(this); btnEnviarsetBounds(330,350, 70, 20); formulariosetLayout(null); // Adicionando ao Layout formularioadd(imgLogo); formularioadd(txtTitulo); formularioadd(lblNome); formularioadd(txtNome); formularioadd(lblEmail); formularioadd(txtEmail); formularioadd(lblSenha); formularioadd(pwdSenha); formularioadd(lblSexo); // RadioButton formularioadd(rdbMasculino); formularioadd(rdbFeminino); formularioadd(lblEstilo); //CheckBox formularioadd(chkEsportes); formularioadd(chkEducacao); formularioadd(chkCulinaria); formularioadd(lblTimeFut); formularioadd(cmbTimesFut); //ComboBox formularioadd(btnEnviar); formulariosetVisible(true); pack(); } //</editorfold> public void actionPerformed(ActionEvent e) { txtNomesetText(""); txtEmailsetText(""); pwdSenhasetText(""); tipoSexoclearSelection(); chkEsportessetSelected(false); chkEducacaosetSelected(false); chkCulinariasetSelected(false); } private void chkEsportesActionPerformed(javaawteventActionEvent evt) { } private void chkEducacaoActionPerformed(javaawteventActionEvent evt) { } private void chkCulinariaActionPerformed(javaawteventActionEvent evt) { } private void cmbTimesFutActionPerformed(javaawteventActionEvent evt) { } private void btnEnviaActionPerformed(javaawteventActionEvent evt) { } private void jTextField_$NomeActionPerformed(javaawteventActionEvent evt) { } public static void main(String args[]) { Criando telas Polimórficas Para aplicar os conceitos de classe abstrata, criação de telas, herança e polimorfismo, iremos fazer uma classe genérica de cadastro que possa ser utilizada para várias classes de negócio Para este sistema funcionar, precisamos construir uma tela de cadastro com uma barra de menus Esta tela se liga a TelaCad Dependendo da opção escolhida no menu, a tela de cadastro terá o comportamento de cadastro de Clube ou cadastro de Sócio Isso é uma aplicação de polimorfismo As telas acima são herdadas de telaCad Mas, cada uma contém um painel que determina as peculiaridades de cada cadastro Todas as funcionalidades comuns são descritas em TelaCad, enquanto que as necessidades particulares são re-escritas SAIBA MAIS (AULA 01) http://estaciobv3digitalpagescombr/users/publications/9788543004792/pages/348 Somente as CLASSES que estendem Throwable (pacote javalang) direta ou indiretamente, podem ser utilizadas com o tratamento de exceção Exceção é uma indicação de um problema que ocorre durante a exec de um programa http://estaciobv3digitalpagescombr/users/publications/9788543004792/pages/370 Leitura do Capítulo 11 do livro Java como programar, 6ª Edição, de H Deitel e P Deitel, Editora Pearson Education, 2005 Estruturas de Controle de Erros: try catch e try finally try catch: erro => DESVIA O CÓDIGO para rotina designada try { diretiva_normal; } catch (exception1) { diretiva_de_tratamento_de_erro1; }catch (exception2) { diretiva_de_tratamento_de_erro2; } try finally: rotina de finalização é GARANTIDAMENTE EXECUTADA Quando recursos do sistema ou estrutura de dados devem ser liberadas, independentemente de sua utilização try { diretiva_normal; } finally { diretiva_de_tratamento_de_erro; } import javacexe var javascanner* submit javaxio* import javautil* Gerenciadores de Leiautes Resolução dos EXERCÍCIOSde 114 até 1110 do capítulo 11 do livro Java Como Programar dim javautil* Identifique qual o método que NÃO é comum em todos os componentes do Swing O pacote de controles gráficos que o canvas não se altera com o sistema operacional é? SÍNTESE DA AULA Explorou o pacote Swing desenvolvendo Interfaces em Java; Criou e manipulou Menus Utilizou interfaces gráficas interagindo com objetos e classes previamente definidos Aplicou os conhecimentos construindo exemplos de Interfaces, criando menus Desenvolveu e executou pequenos programas com orientação a objetos, com o pacote Swing associado a objetos PRÓXIMA AULA Ao utilizar o Java na criação de uma aplicação, surge a necessidade da utilização do comando Scanner Esse comando viabiliza a entrada de informações pelo usuário via teclado Para a utilização do comando, devemos importar a biblioteca correspondente Essa biblioteca é importada através da linha de comando: javaawt javalang Dentre os pacotes mais comuns utilizados em Java identifique a alternativa abaixo cujo descritivo da funcionalidade NÃO corresponde ao pacote relacionado Java Swing: Criação de componentes de interface com o usuário mais sofisticadas Java Networking: Desenvolvimento de aplicações de banco de dados SQL Java Utilities: Para trabalhar com coleções, modelo de eventos e componentes de data e hora Chamar (opcionalmente) show() e definir o tamanho do frame com setSize() Definir o gerenciador de layout do frame e Registrar listeners para os componentes que querem tratar eventos boolean, char, byte, short, int, long, float, double boolean, char, int, long, float boolean, string, short, int, long, float, double boolean, string, int, float, double boolean, string, byte, int, long, float SWING AWT UTIL IO JAVAX Os tipos primitivos de dados do Java são: Considerando os passos para se criar uma GUI, identifique qual dos passos apresentados abaixo está INCORRETO Adicionar os componentes ao content pane do frame ou a algum outro container Declarar os componentes como propriedades da classe que estende JFrame (o top-level container) Instanciar os componentes no construtor da classe ou na declaração Aplicações de rede Não é um pacote do Java JTextField = Área em que o usuário insere dados pelo teclado JLabel = Área em que o usuário utiliza para digitar ButtonGroup: Componente utilizado para criar grupos de JRadioButtons JFrame = É um container (formulário) para outros componentes GUI JButton = Área que aciona um evento quando o usuário clica Método show está obsoleto e foi subsituído pelo setVisible get/setPreferredSize getLength/Width get/setDirSize get/setSize get/setLocation javanet javaexe Idenficar qual das definições abaixo sobre componentes visuais que NÃO está correta Interfaces gráficas que não altera o canvas com o SO Interfaces gráficas padrão AWT Classes como scanner entre outras Java Basic I/O: Utilização de streams de dados Java AWT: Criação de gráficos e imagens básicos além de interfaces com o usuário As classes que compõem o núcleo de funcionalidades Java estão organizadas em pacotes, grupos de classes, interfaces e exceções afins ou de uma mesma aplicação Identifique entre os principais pacotes oferecidos como parte do núcleo Java, o que NÃO faz parte deste núcleo javaxswing EXERCÍCIOS AULA 01 2 08 Q 00 ERROS 08 ACERTOS 100,0 a b c d e 1 8 1 1 0 3 3 nova a 0 b 0 c 0 d 0 e x 0 2 nova a 0 b x 1 c 0 213 d 0 e 0 3 nova a x 0 b 0 c 0 d 0 e 0 4 285 a 0 b 0 c 0 d x 0 e 0 5 nova a 0 b 0 c 0 d x 0 e 0 6 nova a 0 b 0 c 0 271 d 0 e x 0 7 nova a 0 b 0 c 0 d 0 e x 0 8 nova a 0 b 0 c 0 d x 0 e 0 public void PasteCopy(): Faz a cópia/cola de um texto. public void setTitle(String title): Coloca um título na barra de título da janela. Os objetos da classe JScrollPane fornecem capacidade de rolagem a componentes JComponent. O construtor JScrollPane(int, int) recebe, como parâmetros, dois valores inteiros que definem a política de rolagem - horizontal e vertical. Neste contexto, assinale a alternativa que apresenta a constante que representa a política para a barra de rolagem horizontal aparecer somente quando necessário. VERTICAL_SCROLLBAR_ALWAYS HORIZONTAL_SCROLLBAR_NEVER HORIZONTAL_SCROLLBAR_ALWAYS Swing tira proveito da arquitetura model-view-controller (MVC). O modelo representa o estado atual de cada componente. A visão é a representação dos componentes sobre a tela. O controle é a funcionalidade que liga os componentes de interface com usuário aos eventos. Swing também fornece o suporte ao conceito look-and-feel, permitindo mudanças universais no estilo dos componentes da interface gráfica com o usuário. Outras características são: inclusão de tooltips, funcionalidades de acessibilidades, modelo de eventos e componentes A API Swing faz um excelente uso de subpacotes, com 16 deles na versão Java SE 6. Quando classes comuns são separadas em seus próprios pacotes, a usabilidade do código e manutenção são alavancadas. Swing utiliza a classe Button para representar um container de botão, onde AWT utiliza a classe JButton. A API Java Swing está contida no pacote javax.swing. Essa API provê funcionalidades para criação de componentes e containers "leves" (puramente criados em Java). A API Swing foi feita para substituir a API AWT. Muitas das novas classes refeitas foram chamadas com o nome ButtonGroup: Componente utilizado para criar grupos de JRadioButtons JButton = Área que aciona um evento quando o usuário clica. JFrame = É um container (formulário) para outros componentes GUI. JLabel = Área em que o usuário utiliza para digitar. JTextField = Área em que o usuário insere dados pelo teclado. Trabalhando com componentes visuais como JFrame identifique qual o método abaixo é FALSO. public void show(): Faz o frame aparecer na tela. public void setVisible(boolean v): Faz com que o frame se torne visível (v=true) ou não (v=false). public void setDefaultCloseOperation(int op) : Faz a janela realizar uma determinada operação quando fecha. Mais comum: JFrame.EXIT_ON_CLOSE. Os objetos da classe JScrollPane fornecem capacidade de rolagem a componentes JComponent. O construtor JScrollPane(int, int) recebe, como parâmetros, dois valores inteiros que definem a política de rolagem - horizontal e vertical. Neste contexto, assinale a alternativa que apresenta a constante que representa a política para a barra de rolagem vertical sempre aparecer. HORIZONTAL_SCROLLBAR_NEVER HORIZONTAL_SCROLLBAR_AS_NEEDED VERTICAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_ALWAYS VERTICAL_SCROLLBAR_ALWAYS Os tipos primitivos de dados do Java são: boolean, string, short, int, long, float, double boolean, char, byte, short, int, long, float, double boolean, string, int, float, double boolean, string, byte, int, long, float boolean, char, int, long, float Idenficar qual das definições abaixo sobre componentes visuais que NÃO está correta. JClosed = Identifica todos os frames já fechados pelo usuário. JCheckBox = Possui dois estados: selecionado ou não selecionado. JList = Área em que uma lista é exibida, possibilitando a seleção clicando em qualquer item da lista. JComboBox = Lista de itens que o usuário pode fazer uma seleção clicando em um item na lista ou digitando na caixa. JPanel = Contêiner em que os componentes podem ser colocados. Idenficar qual das definições abaixo sobre componentes visuais que NÃO está correta. Questão não Localizada boolean, char, byte, short, int, long, float, double Questão não Localizada VERTICAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_AS_NEEDED Ao utilizar o Java na criação de uma aplicação, surge a necessidade da utilização do comando Scanner. Esse comando viabiliza a entrada de informações pelo dim java.util.* import javac.exe var java.scanner.* submit javax.io.* import java.util.* Sobre API Java Swing identifique a alternativa FALSA. Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada EXERCÍCIOS AULA 01 3 08 Q 01 ERROS 07 ACERTOS 87,5 a b c d e 1 8 2 2 0 2 2 nova a 0 b x 0 c 0 d 0 e e 0 2 nova a 0 b x 0 c 0 d 0 e 0 3 nova a 0 b 0 c 0 d 0 e x 0 4 nova a 0 b 0 c 0 d x 0 e 0 5 nova a x 0 b 0 c 0 d 0 e 0 6 nova a 0 b 0 c 0 d x 0 e 0 7 nova a 0 b 0 c 0 d 0 e x 0 8 nova a x 0 b 0 c 0 d 0 e 0 Acerca de Construtores em Java, marque a alternativa correta: Não usamos construtor em Inteface gráfica O construtor dar a possibilidade ou obriga o usuário de uma classe a passar argumentos para o objeto durante o processo de criação do mesmo Um construtor é um método especial, já que possui retorno. Os construtores permitem modificar suas saídas O comando Scanner, permite a entrada de informações pelo usuário via teclado. Na utilização do comando, devemos declara-lo, por exemplo, da seguinte forma: Scanner a = novo Scanner Scanner xyz = new Scanner (System.in) Scanner sc = new System.in Scanner SC = new Scanner Scanner sc System.in Observe o código Java: Se o atributo Base e o método setBase forem private, a única forma de atribuirmos o valor a Base, é através da instanciação: java.net java.awt java.lang java.exe javax.swing Dentre os pacotes mais comuns utilizados em Java identifique a alternativa abaixo cujo descritivo da funcionalidade NÃOcorresponde ao pacote relacionado. Q1.Base = 6; Q1.Base = Lado; Quadrado Q1.setBase = new Quadrado; Q1.SetBase = new Quadrado(); Quadrado Q1 = new Quadrado(Lado); De acordo com algumas definições sobre JFrame identifique qual afirmação NÃO está correta. Um frame, implementado como uma instância da classe JFrame, é uma janela que tem acessórios tais como borda, título e botões para fechar e minimizá-la. Chamar (opcionalmente) show() e definir o tamanho do frame com setSize(). Adicionar os componentes ao content pane do frame ou a algum outro container. Definir o gerenciador de layout do frame e Registrar listeners para os componentes que querem tratar eventos. Instanciar os componentes no construtor da classe ou na declaração. Declarar os componentes como propriedades da classe que estende JFrame (o top-level container). Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada Java Swing: Criação de componentes de interface com o usuário mais sofisticadas. Java Utilities: Para trabalhar com coleções, modelo de eventos e componentes de data e hora. Java Basic I/O: Utilização de streams de dados. A programação gráfica está muito ligada à ocorrência de eventos, que não precisam ser tratados durante o desenvolvimento do programa. O setDefaultCloseOperation serve para dizermos ao programa o que queremos que o sistema faça quando fechamos uma JFrame qualquer. Trabalhando com componentes visuais como JButton identifique qual o método abaixo é FALSO. public void show(): Faz o frame aparecer na tela. public JButton(String text): Cria um novo botão com o texto dado como parâmetro definido como texto de face. public void setHorizontalAlignment: Define o alinhamento horizontal public String getText():Retorna o texto mostrado no botão. public void setText(String text): Muda o texto de face do botão. As classes que compõem o núcleo de funcionalidades Java estão organizadas em pacotes, grupos de classes, interfaces e exceções afins ou de uma mesma aplicação. Identifique entre os principais pacotes oferecidos como parte do núcleo Java, o que NÃO faz parte deste núcleo. Ao contrário de outras linguagens de programação, os containers Java não vêm 100% para lidar com os eventos básicos que ocorrem em uma janela. Qualquer aplicativo Delphi ou VB sabe fechar sua janela sem problema, mas Java não. Quando não é declarado nenhum construtor na classe, o Java o cria. Esse construtor é o construtor opcional, ele não recebe nenhum argumento e o corpo dele é vazio. A partir do momento que o construtor é declarado, o construtor default não é mais fornecido. Java AWT: Criação de gráficos e imagens básicos além de interfaces com o usuário. Java Networking: Desenvolvimento de aplicações de banco de dados SQL. Considerando os passos para se criar uma GUI, identifique qual dos passos apresentados abaixo está INCORRETO. EXERCÍCIOS AULA 01 4 08 Q 01 ERROS 07 ACERTOS 87,5 a b c d e 1 8 3 1 3 1 0 nova a 0 b x 0 c 0 d e 0 e 0 2 nova a 0 b 0 c x 0 d 0 e 0 3 199 a x 1 b 0 c 0 d 0 e 0 4 nova a x 0 b 0 c 0 d 0 e 0 5 nova a 0 b 0 c x 0 d 0 e 0 6 Enunciado igual. Opções dif 285 a x 0 b 0 296 292 c 0 84 84 d 0 e 0 JLabel = Área em que o usuário utiliza para digitar. 7 299 a 0 b 0 c 0 d x 1 e 0 8 nova a 0 b 0 c x 1 271 d 0 e 0 Qual objeto abaixo não é um objeto atomico? true, false, false, true false, true, true, true true, false, true, false Caixa de Texto Classe combobox Menu Botão 00 11 23 36 410 02 14 25 36 47 O pacote de controles gráficos que o canvas não se altera com o sistema operacional é? SWING IO JAVAX UTIL AWT Analise o seguinte programa desenvolvido na linguagem Java. public class testeLogica { public static void main(String[] args) { boolean A=true, B=false; boolean R1, R2, R3, R4; R1 = (A || B && A || !B); R2 = (!(A || !B) && (A || B)); R3 = (A && B) && (!A || !B); R4 = (!A || B || A || !B); System.out.print(R1); System.out.print(R2); System.out.print(R3); System.out.print(R4); } } public void show(): Faz o frame aparecer na tela. Questão não Localizada SWING Questão não Localizada Um programa Java é listado a seguir: Um bloco do programa está faltando. Ao inserir o bloco: Qual será a saída exibida através do comando System.out.print ? 02 14 26 38 11 21 32 42 53 00 11 21 32 42 get/setSize getLength/Width Idenficar qual das definições abaixo sobre componentes visuais que NÃO está correta. JLabel = Área em que o usuário utiliza para digitar. ButtonGroup: Componente utilizado para criar grupos de JRadioButtons JTextField = Área em que o usuário insere dados pelo teclado. JFrame = É um container (formulário) para outros componentes GUI. JButton = Área que aciona um evento quando o usuário clica. Trabalhando com componentes visuais como JFrame identifique qual o método abaixo é FALSO. VERTICAL_SCROLLBAR_AS_NEEDED Questão não Localizada JClosed = Identifica todos os frames já fechados pelo usuário. public void PasteCopy(): Faz a cópia/cola de um texto. false, true, false, true false, false, false, true Identifique qual o método que NÃO é comum em todos os componentes do Swing. get/setLocation get/setPreferredSize get/setDirSize public void setTitle(String title): Coloca um título na barra de título da janela. public void setDefaultCloseOperation(int op) : Faz a janela realizar uma determinada operação quando fecha. Mais comum: JFrame.EXIT_ON_CLOSE. public void PasteCopy(): Faz a cópia/cola de um texto. public void setVisible(boolean v): Faz com que o frame se torne visível (v=true) ou não (v=false). Os objetos da classe JScrollPane fornecem capacidade de rolagem a componentes JComponent. O construtor JScrollPane(int, int) recebe, como parâmetros, dois valores inteiros que definem a política de rolagem - horizontal e vertical. Neste contexto, assinale a alternativa que apresenta a constante que representa a política para a barra de rolagem vertical sempre aparecer. HORIZONTAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_ALWAYS VERTICAL_SCROLLBAR_ALWAYS VERTICAL_SCROLLBAR_ALWAYS HORIZONTAL_SCROLLBAR_NEVER Questão não Localizada EXERCÍCIOS AULA 01 5 08 Q 00 ERROS 08 ACERTOS 100,0 a b c d e 1 8 3 0 3 2 0 nova a 0 b 0 c x 1 313 d 0 e 0 2 nova a 0 b 0 c 0 285 d x 1 e 0 3 213 a x 1 b 0 c 0 d 0 e 0 4 nova a 0 b 0 c 0 271 d x 1 e 0 5 320 a 0 b 0 c x 1 d 0 e 0 6 Enunciado igual. Opc dif nova a x 1 b 0 296 292 c 0 84 271 365 d 0 e 0 JLabel = Área em que o usuário utiliza para digitar. 7 330 a 0 b 0 c x 1 d 0 e 0 8 344 a x 1 b 0 c 0 271 d 0 e 0 Um construtor é um método especial, já que possui retorno. O construtor dar a possibilidade ou obriga o usuário de uma classe a passar argumentos para o objeto durante o processo de criação do mesmo Não usamos construtor em Inteface gráfica Os construtores permitem modificar suas saídas O construtor dar a possibilidade ou obriga o usuário de uma classe a passar argumentos para o objeto durante o processo de criação do mesmo Observe o código Java: Se o atributo Base e o método setBase forem private, a única forma de atribuirmos o valor a Base, é através da instanciação: Quadrado Q1 = new Quadrado(Lado); Q1.Base = Lado; Q1.Base = 6; Q1.SetBase = new Quadrado(); Quadrado Q1.setBase = new Quadrado; Quadrado Q1 = new Quadrado(Lado); java.net javax.swing java.lang java.exe Acerca de Construtores em Java, marque a alternativa correta: Quando não é declarado nenhum construtor na classe, o Java o cria. Esse construtor é o construtor opcional, ele não recebe nenhum argumento e o corpo dele é vazio. A partir do momento que o construtor é declarado, o construtor default não é mais fornecido. Ao utilizar o Java na criação de uma aplicação, surge a necessidade da utilização do comando Scanner. Esse comando viabiliza a entrada de informações pelo usuário via teclado. Para a utilização do comando, devemos importar a biblioteca correspondente. Essa biblioteca é importada através da linha de comando: import javac.exe var java.scanner.* import java.util.* dim java.util.* submit javax.io.* import java.util.* Idenficar qual das definições abaixo sobre componentes visuais que NÃO está correta. JComboBox = Lista de itens que o usuário pode fazer uma seleção clicando em um item na lista ou digitando na caixa. JPanel = Contêiner em que os componentes podem ser colocados. JList = Área em que uma lista é exibida, possibilitando a seleção clicando em qualquer item da lista. JClosed = Identifica todos os frames já fechados pelo usuário. JCheckBox = Possui dois estados: selecionado ou não selecionado. java.awt JClosed = Identifica todos os frames já fechados pelo usuário. Os tipos primitivos de dados do Java são: boolean, char, byte, short, int, long, float, double boolean, string, byte, int, long, float boolean, string, short, int, long, float, double boolean, string, int, float, double boolean, char, int, long, float boolean, char, byte, short, int, long, float, double Os objetos da classe JScrollPane fornecem capacidade de rolagem a componentes JComponent. O construtor JScrollPane(int, int) recebe, como parâmetros, dois valores inteiros que definem a política de rolagem - horizontal e vertical. Neste contexto, assinale a alternativa que apresenta a constante que representa a política para a barra de rolagem horizontal aparecer somente quando necessário. HORIZONTAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_NEVER VERTICAL_SCROLLBAR_AS_NEEDED VERTICAL_SCROLLBAR_ALWAYS HORIZONTAL_SCROLLBAR_ALWAYS VERTICAL_SCROLLBAR_ALWAYS Sobre API Java Swing identifique a alternativa FALSA. A API Swing faz um excelente uso de subpacotes, com 16 deles na versão Java SE 6. Quando classes comuns são separadas em seus próprios pacotes, a usabilidade do código e manutenção são alavancadas. A API Java Swing está contida no pacote javax.swing. Essa API provê funcionalidades para criação de componentes e containers "leves" (puramente criados em Java). A API Swing foi feita para substituir a API AWT. Muitas das novas classes refeitas foram chamadas com o nome Swing utiliza a classe Button para representar um container de botão, onde AWT utiliza a classe JButton. Swing também fornece o suporte ao conceito look-and-feel, permitindo mudanças universais no estilo dos componentes da interface gráfica com o usuário. Outras características são: inclusão de tooltips, funcionalidades de acessibilidades, modelo de eventos e componentes Swing tira proveito da arquitetura model-view-controller (MVC). O modelo representa o estado atual de cada componente. A visão é a representação dos componentes sobre a tela. O controle é a funcionalidade que liga os componentes de interface com usuário aos eventos. Swing utiliza a classe Button para representar um container de botão, onde AWT utiliza a classe JButton. As classes que compõem o núcleo de funcionalidades Java estão organizadas em pacotes, grupos de classes, interfaces e exceções afins ou de uma mesma aplicação. Identifique entre os principais pacotes oferecidos como parte do núcleo Java, o que NÃO faz parte deste núcleo. java.exe Aula 02 < > Existem basicamente 3 tipos de maneiras de organizar componentes GUI: Alterando o alinhamento layoutsetAlignment(FlowLayoutTRAILING); TAREFA: Pág 6 de 13 Gerenciadores de Layouts package testegridlayout; import javaxswingJFrame; import javaxswingJButton; //swing import javaxswingborderTitledBorder;import javaxswingborderLineBorder; import javaawtFlowLayout; import javaawtGridLayout; //awt import javaawtLayoutManager; import javaawtLayoutManager2; import javaawtBorderLayout; import javaawtEventQueue; import javaawtFont; import javaawtColor; import javaawtDimension; import javaawtFlowLayout; public class TesteGridLayOut extends JFrame { private static final long serialVersionUID = 1L; public TesteGridLayOut() { super("Teste GridLayout"); thissetLayout(new FlowLayout()); thissetVisible(true); thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE); initialize(); } private void initialize() { setPreferredSize(new Dimension(400, 200)); setLayout(new GridLayout(3,5));// setLayout(layout); JButton[] botoes = new JButton[12]; for (int i=0; i<botoeslength; i++){ botoes[i] = new JButton("Botão "+Stringformat("%d", i)); botoes[i]setBorder(new TitledBorder(new LineBorder(ColorBLUE))); thisadd(botoes[i]); }thisrepaint();thisvalidate();pack();} public static void main(String args[]) { new TesteGridLayOut()setVisible(true); }} contsetLayout(new XXXLayout()); Containers derivados da classe Window têm como padrão um gerenciador de layout do tipo BorderLayout, enquanto aqueles derivados de Panel usam como padrão FlowLayout FlowLayout Caso o espaço de uma linha horizontal não seja suficiente para caber todos os componentes, este gerenciador de leiautes utiliza mais de uma linha Utilizando o método setAlignment(int align), podemos definir qual o tipo de alinhamento será utilizado No quadro abaixo, apresentamos as três constantes que podem ser usadas como align para definir o tipo de alinhamento dos componentes à esquerda: layoutsetAlignment(FlowLayoutLEFT); * void validate()- Usado para rearranjar os componentes em um container se o gerenciador de layout sofreu alguma modificação ou novos componentes foram adicionados Classe gerenciadora de leiaute que dispõe os componentes GUI sequencialmente na janela, da esquerda para a direita, de cima para baixo, como se fosse a escrita de um texto dentro de um parágrafo à medida que os componentes são adicionados ao contêiner É comumente utilizado para arrumar botões em painéis As linhas são centralizadas O exemplo apresenta uma tela com 5 botões à direita: layoutsetAlignment(FlowLayoutRIGHT); à Principal: layoutsetAlignment(FlowLayoutLEADING); Para definirmos um tamanho do contêiner, utilizamos o método setPreferredSize (Dimension predefinida) Esse método recebe um objeto da classe Dimension(Largura, Altura) Então, teremos: setPreferredSize(new Dimension(400, 200)); //Define um contêiner de 400 de largura por 200 de altura Complementando esse gerenciador, também podemos definir o intervalo entre os componentes, tanto vertical, quanto horizontalmente, por meio dos métodos setHgap e setVgap Ambos recebem um inteiro que define o intervalo em pixels Altere o programa fornecido para verificar todos esses comandos apresentados Veja como a redefinição destes componentes altera a aparência da disposição dos componentes GriLayout Classe gerenciadora de leiaute que dispõe os componentes GUI em um grid, como se fosse uma grade de uma planilha de cálculo Os componentes são colocados em linhas e colunas pré-determinadas e deixando-os com o mesmo tamanho O tamanho dos componentes será ajustado automaticamente à medida que a janela é redimensionada Construtor: Função Podemos acessar esses ATRIBUTOS pelos métodos estudados em FlowLayout new GridLayout(); Cria grade com única linha e número de colunas necessárioas para colocar cada componente em uma coluna new GridLayout(int rows, int cols); Cria grade com única linha e número de linhas e colunas segundo os parâmetros new GridLayout(int rows, int cols, int hgap, intvgap); Cria grade com os parâmetros de linhas, colunas, espaçamento horizontal e vertical diagrama de classes Para determinar que o gerenciador de layout em um container cont seja do tipo XXXLayout, é preciso invocar setLayout(), passando como Utilizando os gerenciadores de layout, sua tarefa pode ficar mais simples e rápida, uma vez que o gerenciador fará o trabalho para você, automaticamente O problema é que você irá perder autonomia e o controle sobre o posicionamento e tamanho dos GUIs 3 - Aprender a desenvolver pequenos programas para exemplificar os tópicos estudados * void setLayout(LayoutManager l)- Recebe como argumento o objeto, que implementa LayoutManager e determina qual a política de gerência de disposição de componentes a ser adotada GERENCIADORES DE LEIAUTES (layouts) 1 - Conhecer os vários tipos de layout da biblioteca Swing O pacote javaawt apresenta vários gerenciadores de layout pré-definidos As classes FlowLayout e GridLayout são implementações de LayoutManager; BorderLayout, CardLayout e GridBagLayout são implementações de LayoutManager2 O pacote Swing acrescenta ainda um gerenciador BoxLayout Os principais métodos da classe Container relacionados ao layout de componentes são: public class JFrameGridLayout extends javaxswingJFrame { GridLayout layout; /** Creates new form JFrameGridLayout */ public JFrameGridLayout() { super("Teste GridLayout "); initialize(); } private void initialize() { setDefaultCloseOperation(javaxswingWindowConstantsEXIT_ON_CLOSE); setPreferredSize(new Dimension(400, 200)); layout = new GridLayout(3,5); // setLayout(layout); getContentPane()setLayout(layout); //layoutsetAlignment(FlowLayoutTRAILING); layoutsetHgap(15); layoutsetVgap(60); for (int i=0; i<10; i++){ add(new JButton("Botão- "+i)); } pack(); } /** * @param args the command line arguments */ public static void main(String args[]) { javaawtEventQueueinvokeLater(new Runnable() { public void run() { new JFrameGridLayout()setVisible(true); } Programação Visual em uma IDE São ferramentas de design fornecidas pelas IDEs que permitem arrastar e soltar os componentes GUI de uma caixa de ferramentas em uma área de desenho em branco Geralmente, a IDE cria o código Java necessário Nesses ambientes, você ainda pode acrescentar códigos de tratamento de eventos de um componente escolhido através de cliques ou duplo clique SAIBA MAIS sobre container aula02_doc01pdf Quando um container tem mais de um componente, é preciso especificar como devem ser dispostos Em Java, um objeto que implementa a interface LayoutManager é responsável por esse gerenciamento A interface LayoutManager2 é uma extensão de LayoutManager que incorpora o conceito de restrições de posicionamento de componentes em um container 2 - Aprender como gerenciar os vários tipos de layout da biblioteca Swing Os gerenciadores de leiautes organizam os componentes GUI em um contêiner de objetos com o objetivo de construir uma apresentação melhor Sua função é facilitar a vida do designer na construção das interfaces Essa funcionalidade permite que o programador se concentre na aparência e nos comportamentos básicos, deixando para o gerenciador de leiaute a responsabilidade do detalhe da aparência Todos estes gerenciadores implementam a interface LayoutManager, (no pacote javaawt) O método setLayout, da classe Container, aceita um objeto que implementa a interface LayoutManager como parâmetro Posicionamento Absoluto Utilizado pela maioria das IDE’s, pois, permite que especifique uma posição absoluta de cada componente GUI em relação ao canto superior esquerdo do contêiner Usa os métodos Component setSize e setLocation ou setBounds É considerado muito trabalhoso para se construir sem auxilio de IDE’s Gerenciadores de Layout Definições de leiautes: Funciona como o MESCLAR CÉLULA do EXCEL alinhamento do componente dentro da célula proporção do espaço extra alocado à célula na h ou v, qdo o contentor é redimensionado public Insets(cima, esquerda, baixo, direita) Default: null internal padding restricoesgridx = 1; restricoesgridy = 0; restricoesgridwidth = 1; restricoesgridheight = 1; restricoesfill = GridBagConstraintsBOTH; restricoesipadx = 4; restricoesipady = 4; restricoesinsets = margens; add(add, restricoes); restricoesgridy = 1; add(clear, restricoes); restricoesgridy = 2; add(close, restricoes); pack(); } public static void main(String[] args) { POOGridBagLayout POOGridBagLayout = new POOGridBagLayout(); POOGridBagLayoutsetVisible(true); } } package poogridbaglayout; import javaawtButton; import javaawtDimension; import javaawtGridBagConstraints; import javaawtGridBagLayout; import javaawtInsets; import javaawtList; import javaawtTextArea; import javaxswingJFrame; import javaxswingWindowConstants; public class POOGridBagLayout extends JFrame { private GridBagLayout layout = null; private final int noLinhas = 3; public POOGridBagLayout() { super("Teste GridBagLayout"); setDefaultCloseOperation(WindowConstantsEXIT_ON_ CLOSE); setPreferredSize(new Dimension(400, 200)); layout = new GridBagLayout(); // setLayout(layout); BorderLayout import javaawtBorderLayout; // swing import javaawtDimension; import javaxswingJButton; import javaxswingJLabel; import javaawtGridBagConstraints; // awt /** * @author LH *//** * @author Eduardo */ public class POOLHBorderLayout extends javaxswingJFrame { BorderLayout layout; /** Creates new form POOBorderLayout */ public POOLHBorderLayout() { super("Teste BorderLayout"); initialize(); } private void initialize() { setDefaultCloseOperation(javaxswingWindowConstantsEXIT_ON_CLOSE); setPreferredSize(new Dimension(400, 200)); //define o tamanho layout = new BorderLayout(); getContentPane()setLayout(layout); layoutsetHgap(5); //define o espaçamento horizontal entre GUI layoutsetVgap(5); //define o espaçamento vertical entre GUI add(new JButton("Norte"), BorderLayoutNORTH); add(new JButton("Sul"), BorderLayoutSOUTH); add(new JButton("Leste"), BorderLayoutEAST); add(new JButton("Oeste"), BorderLayoutWEST); JLabel lblCentral= new JLabel("Um texto (centralizado) no Centro"); lblCentralsetHorizontalAlignment(JLabelCENTER); add(lblCentral); pack(); } public static void main(String args[]) { javaawtEventQueueinvokeLater(new Runnable() { @Override public void run() { new POOLHBorderLayout()setVisible(true); } Classe gerenciadora de leiaute que dispõe os componentes GUI em cinco (5) áreas: norte (parte superior), sul (parte inferior), leste (lado direito), oeste (lado esquerdo) e centro Podemos adicionar até cinco componentes neste gerenciador, um por região Regiões Norte e Sul têm prioridade sobre Leste e Oeste e estas têm prioridade sobre a região Central Existem cinco constantes definidas para que possamos acessar as áreas: BorderLayoutNORTH, BorderLayoutSOUTH, BorderLayoutEAST, BorderLayoutWEST e BorderLayoutCENTER Quando não definimos qual setor o componente irá entrar, ele irá para a área central; Os métodos de definição de espaçamento vertical e horizontal funcionam normalmente neste gerenciador Os métodos setSize e setLocation também funcionam e definem tamanho e local onde a janela irá aparecer tamanho dos componentes em relação ao das células Default: NONE gridx Default: GridBagConstraintsRELATIVE gridy Default: GridBagConstraintsRELATIVE gridwidth A constante REMAINDER da classe GridBagConstraints estende o componente até ao fim do contentorgridheight Define o NÚMERO DE LINHAS que o componente usa Default: 1 Define a COLUNA em que o componente será alocado A coluna mais à esquerda tem valor ZERO (0) Define a LINHA em que o componente será alocado A coluna mais acima tem valor ZERO (0) Define o NÚMERO DE COLUNAS que o componente usa Default: 1 List lEsq = new List(noLinhas, true); lEsqadd("Um"); lEsqadd("Dois"); lEsqadd("Tres"); lEsqadd("Quatro"); lEsqadd("Cinco"); lEsqadd("Seis"); lEsqadd("Sete"); Button add = new Button(">>"); Button clear = new Button("Clear"); Button close = new Button("Close"); TextArea tDir = new TextArea("", noLinhas, 10, TextAreaSCROLLBARS_NONE); GridBagConstraints restricoes = new GridBagConstraints(); restricoesgridx = 0; restricoesgridy = 0; restricoesgridwidth = 1; restricoesgridheight = 3; restricoesfill = GridBagConstraintsVERTICAL; add(lEsq, restricoes); restricoesgridx = 2; add(tDir, restricoes); Insets margens = new Insets(4, 3, 4, 3); anchor fill Classe gerenciadora de leiaute que dispõe os componentes GUI em cartões Apenas um cartão é visível por vez e o contêiner trabalha como se os cartões estivessem empilhados O primeiro componente adicionado é o componente GUI, visível quando o contêiner é apresentado pela primeira vez Quando adicionamos os componentes na tela, precisamos definir qual área estaremos utilizando Essa informação é dada pelas constantes acima; CardLayout GridBagLayout (São 11 opções) BoxLayout Classe gerenciadora de leiaute oferecida pelo Swing que é simples, com alto grau de FLEXIBILIDADE Dispõe os componentes GUI em apenas UMA ÚNICA LINHA OU COLUNA, porém, arranjos de componentes bem complexos podem ser obtidos por meio da COMBINAÇÃO desses componentes Normalmente esse tipo de gerenciador não é usado diretamente, mas sim por meio de um conteiner di tipo BOX Classe gerenciadora de leiaute semelhante a GridLayout, mas diferente pelo fato que podemos variar o tamanho dos componentes, além de podermos adicionar em qualquer ordem. Cada objeto do GridBagLayout mantém uma grade de células retangulares Principais características: * O contêiner é dividido numa grande de células formadas por linhas e colunas * O alinhamento do componente dentro da célula pode ou não manter dimensões originais np redimensionamento da janela * Em cada célula pode haver apenas um componente a ser expandido de forma a ocupar uma área correspondente a uma ou mais linhas e/ou colunas GridBagLayout Utilizado qdo o COMPONENTE < ÁREA DA CÉLULA a que foi alocado para indicar a posição do componente na célula O PADRÃO é CENTER São possíveis NORTH, NORTHEAST, EAST, SOUTHEAST, SOUTH, SOUTHWEST, WEST, NORTHWEST Utilizado qdo ÁREA PARA APRESENTAÇÃO DO COMPONENTE > TAMANHO NATURAL DO COMPONENTE Indica como a apresentação do componente irá OCUPAR A ÁREA DISPONÍVEL Os VALORES DAS CONSTANTES DEFINIDAS DA CLASSE SÃO: NONE: NÃO MODIFICA o tamanho padrão do componente VERTICAL: ocupa o espaço VERTICAL mas NÃO ALTERA A LARGURA do componente HORIZONTAL: ocupa o espaço HORIZONTAL mas NÃO ALTERA A ALTURA do componente BOTH: ocupa o espaço disponível nas duas dimensões DescriçãoCampo Uma vez que o desenho da interface tenha sido especificado, a chave para a utilização deste gerenciador é a criação de um objeto de restrição de posicionamento Esse objeto é da classe GridBagConstraints Uma vez que esse objeto tenha sido criado e suas restrições especificadas, basta associar essas restrições ao componente usando o método setConstraints() e adicioná-lo ao container com o método add() com o segundo parâmetro de restrições Define o ESPAÇAMENTO À VOLTA do componente Default: SEM Espaçamento (null) Ex: cinsets = new Inset(5, 5, 5, 5); Enchimento interno do componente para aumentar o seu tamanho mínimo Define o ESPAÇAMENTO EXTRA para alocação VERTICAL (Y) e HORIZONTAL (X)weightx, weighty insets ipadx, ipady pág 10 de 13 Escreva um programa para criar a janela de uma calculadora, como a foto abaixo SAIBA MAIS (AULA 2) Leitura do Capítulo 11, do livro: Java, como programar 6ª Edição, de H Deitel e P Deitel, Editora Pearson Education, 2005 (mesmo da aula I) Capítulo 11 http://estaciobv3digitalpagescombr/users/publications/9788543004792/pages/370 ATIVIDADE PROPOSTA http://estaciobv3digitalpagescombr/users/publications/9788543004792/pages/??? Resolução dos EXERCÍCIOSde 1111 até 1118, do capítulo 11, do livro: Java, Como Programar EXERCÍCIOS AULA 02 1 08 Q 01 ERROS 07 ACERTOS 87,5 a b c d e 1 8 1 2 2 2 1 nova a x 0 b 0 c 0 d 0 e 0 2 nova a 0 b 0 c 0 d x 0 e 0 3 nova a 0 b 0 c x 0 d 0 e 0 4 nova a 0 b 0 c 0 d x 0 e 0 5 nova a 0 b 0 c 0 d 0 e x 0 6 nova a 0 b x 0 c 0 d 0 e E 0 7 nova a 0 b x 0 c 0 d 0 e 0 8 nova a 1,2,6,4,3,5; 1Classe JFrame 2 0 186 b 1,2,4,6,5,3; 2Classe JComponent 5 0 187 c x 2,5,1,3,6,4; 3Classe JButton 1 0 188 d 2,6,5,3,4,1; 4GridLayout 3 0 189 e 2,6,5,4,3,1; 5LayoutManager 6 0 190 6MouseListener 4 nova R: 2,5,1,3,6,4; Analise as linhas de código abaixo, e assinale a alternativa que descreve corretamente tal processamento: GridLayout layout; layout = new GridLayout(4,6); cria uma grade com 5 linhas e 7 colunas cria uma grade com 4 linhas e 6 colunas cria uma grade com 6 linhas e 4 colunas cria uma grade com 4 linhas e 5 colunas GridLayout é a classe gerenciadora de leiaute que dispõe os componentes GUI em um grid, como se fosse uma grade de uma planilha de cálculo Então, os componentes são colocados em linhas e colunas pré-determinadas Assinale a alternativa que indica corretamente a chamada ao construtor que cria um grid com 5 linhas e 3 colunas new GridLayout (2,4) new GridLayout (3,5) new GridLayout (5,3) "Classse gerenciadora de layout oferecida pelo Swing que é simples, com alto grau de flexibilidade Dispõe os componentes GUI em uma única linha ou única coluna Entretanto, arranjos de componentes bem complexos podem ser obtidos" Assinale a alternativa que indica a classe gerenciadora acima descrita BoxLayout CardLayout GidBagLayout BoderLayout FlowLayout De acordo com os tipos de Layout, identifique qual das afirmações abaixo está INCORRETA - BorderLayout: é o padrão Divide a tela em cinco regiões (NORTH, SOUTH, EAST, WEST, CENTER) Todo componente adicionado entra automaticamente no centro, "empurrando" os outros para as bordas GridBagLayout: permite maior controle que o GridLayout Neste layout você pode definir exatamente como as regiões da sua grade irão se comportar e reformatar caso a janela tenha seu tamanho alterado Entretanto, é o gerenciador mais complexo de utilizar Ele foi criado para ser utilizado por programas de criação de GUI's FlowLayout: é o mais simples Ele simplesmente "enche" o container com componentes da esquerda pra direita, até terminar o espaço da linha Daí, ele faz a mesma coisa na linha abaixo Todos os componentes sempre terão um espaço do tamanho que eles estão ocupando no momento BoxLayout: é uma versão simplificada do GridBagLayout Permite indicar a localização dos componentes em coordenadas X e Y, porém não permite o controle da distância entre componentes GridLayout: permite construir uma tabela de componentes Ao adicioná-los, eles são colocados da esquerda para a direita e de cima para baixo em uma grade Você pode especificar o número de colunas e linhas que serão necessárias, e todas terão o mesmo tamanho Se existir menos componentes do que o total de espaços, eles ficarão vazios Caso contrário, o componente excedente não será mostrado new GridLayout (4,2) GridBagLayout FlowLayout GridLayout CardLayout Os gerenciadores de layouts organizam os componentes GUI em um container de objetos com o objetivo de construir uma apresentação melhor Sua função é facilitar a vida do designer na construção das interfaces Essa funcionalidade permite que o programador se concentre na aparência e nos comportamentos básicos, deixando para o gerenciador de layout a responsabilidade do detalhe da aparência Neste contexto, assinale a alternativa que apresenta o conjunto de linhas que configura o gerenciador FlowLayout para o container corrente Classe filha de Frame proveniente da classe Window; Classe filha de JComponent; Classe filha de EventListener; Classe que implementa LayoutManager layout = new FlowLayout(); getContentPane()getLayout(layout); Associe as colunas e marque a alternativa correta: 1Classe JFrame ( ) Classe filha de Container; 2Classe JComponent ( ) Interface proveniente da awt; 3Classe JButton ( ) Classe filha de Frame proveniente da classe Window; 4GridLayout ( ) Classe filha de JComponent; 5LayoutManager ( ) Classe filha de EventListener; 6MouseListener ( ) Classe que implementa LayoutManager "Classe gerenciadora de leiaute que dispõe os componentes GUI em cartões Apenas um cartão é visível por vez e o contêiner trabalha como se os cartões estivessem empilhados O primeiro componente adicionado é o componente GUI visível quando o contêiner é apresentado pela primeira vez" Assinale a alternativa que indica a classe gerenciadora acima descrita BorderLayout é a classe gerenciadora de leiaute que dispõe os componentes GUI em cinco áreas: norte (parte superior), sul (parte inferior), leste (lado direito), oeste (lado esquerdo) e centro Quando não definimos em qual setor o componente irá entrar, ele irá para qual área? layout = new FlowLayout(); getContentPane()setLayout(layout); layout = new FlowLayout(); getContent()setLayout(layout); layout = new FlowLayout(); getPane()setLayout(layout); Classe filha de Container; Interface proveniente da awt; cria uma grade com 7 linhas e 5 colunas new GridLayout (3,5,10,5) BoxLayout layout = new FlowLayout(); getContentPane(layout); Oeste Centro Sul Leste Norte EXERCÍCIOS AULA 02 2 08 Q 01 ERROS 07 ACERTOS 87,5 a b c d e 1 8 4 3 1 0 0 nova a x 0 b 0 c 0 d 0 e 0 2 nova a x 0 b 0 c 0 d 0 e 0 3 nova a 0 b x 0 c 0 d 0 e 0 4 nova a 0 b x 0 c 0 d 0 e 0 5 nova a x 0 b 0 c 0 d e 0 e 0 6 nova a 0 b 0 666 664 c x 0 276 277 d 0 e 0 Centro 7 nova a 0 b x 0 c 0 d 0 e 0 8 nova a x 0 b 0 c 0 d 0 e 0 BoxLayout FlowLayout CardLayout GidBagLayout De acordo com a definição de Gerenciamento de Layout, identifique qual das alternativas abaixo NÃO está correta. A decisão é tomada usando-se designs padronizados pelo usuário. Chamadas possíveis do add: Usando posição relativa (BorderLayout) panel.add(component, BorderLayout.CENTER) e Ordem de adição: (BoxLayout, GridLayout, ...) panel.add(component). layout = new FlowLayout(); getContent().setLayout(layout); Sul FlowLayout BorderLayout GridLayout CardLayout GridBagLayout Analise as linhas de código abaixo, e assinale a alternativa que descreve corretamente tal processamento: GridLayout layout; layout = new GridLayout(4,6); cria uma grade com 7 linhas e 5 colunas A plataforma Java fornece quatro layout managers mais usados: BorderLayout, BoxLayout, FlowLayout, GridLayout. Vários tipos de designs diferentes podem ser combinados para realizar qualquer tela que desejamos. BorderLayout é a classe gerenciadora de leiaute que dispõe os componentes GUI em cinco áreas: norte (parte superior), sul (parte inferior), leste (lado direito), oeste (lado esquerdo) e centro. Quando não definimos em qual setor o componente irá entrar, ele irá para qual área? Quando usarmos o método add para acrescentar um componente em um container, o layout manager em uso deve ser levado em consideração. posiciona um botão ("OK") na área oeste do container. posiciona um botão ("OK") na área central do container. cria uma grade com 4 linhas e 6 colunas cria uma grade com 4 linhas e 5 colunas cria uma grade com 5 linhas e 7 colunas cria uma grade com 6 linhas e 4 colunas "Classse gerenciadora de layout oferecida pelo Swing que é simples, com alto grau de flexibilidade. Dispõe os componentes GUI em uma única linha ou única coluna. Entretanto, arranjos de componentes bem complexos podem ser obtidos". Assinale a alternativa que indica a classe gerenciadora acima descrita. BoderLayout Norte Centro Leste Oeste Os gerenciadores de layouts organizam os componentes GUI em um container de objetos com o objetivo de construir uma apresentação melhor. Sua função é facilitar a vida do designer na construção das interfaces. Essa funcionalidade permite que o programador se concentre na aparência e nos comportamentos básicos, deixando para o gerenciador de layout a responsabilidade do detalhe da aparência. Neste contexto, assinale a alternativa que apresenta o conjunto de linhas que configura o gerenciador FlowLayout para o container corrente. Uma interface deve conter paineis que aparecem de acordo com um determinado contexto. Os paineis contêm diferentes componentes. Quando um painel está visível, os outros devem estar "escondidos". Neste caso, deve-se utilizar um gerenciador de layout: Marque a alternativa que indica esse gerenciador de layout. CardLayout GridLayout FlowLayout Nenhum BorderLayout "Classe gerenciadora de leiaute que dispõe os componentes GUI sequencialmente na janela, da esquerda para a direita, de cima para baixo". Assinale a alternativa que indica a classe gerenciadora acima descrita. layout = new FlowLayout(); getContentPane().setLayout(layout); layout = new FlowLayout(); getContentPane(layout); layout = new FlowLayout(); getContentPane().getLayout(layout); layout = new FlowLayout(); getPane().setLayout(layout); Analise as linhas de código abaixo, e assinale a alternativa que descreve corretamente tal processamento: layout = new BorderLayout(); getContentPane().setLayout(layout); add(new Button("OK"), BorderLayout.EAST); posiciona um botão ("OK") na área leste do container. posiciona um botão ("OK") na área sul do container. posiciona um botão ("OK") na área norte do container. Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada Questão não Localizada EXERCÍCIOS AULA 02 3 08 Q 01 ERROS 07 ACERTOS 87,5 a b c d e 1 8 0 1 2 2 3 nova a 0 b 0 c x 0 d 0 e 0 2 nova a 0 b 0 c 0 d 0 e x 0 3 nova a 0 b x 0 c 0 d 0 e 0 4 nova a 0 b 0 c 0 d x 0 e 0 5 nova a 0 b 0 c 0 d 0 e x 0 6 nova a 0 b 0 c x 0 d 0 e 0 7 nova a 0 b e 0 c 0 d 0 e x 0 8 nova a 0 b 0 c 0 d x 0 e 0 2,6,5,3,4,1; 2,5,1,3,6,4. 1,2,6,4,3,5; FlowLayout.RIGTH "Classe gerenciadora de leiaute que dispõe os componentes GUI em cartões. Apenas um cartão é visível por vez e o contêiner trabalha como se os cartões estivessem empilhados. O primeiro componente adicionado é o componente GUI visível quando o contêiner é apresentado pela primeira vez." Assinale a alternativa que indica a classe gerenciadora acima descrita. CardLayout Questão não Localizada FlowLayout é a classe gerenciadora de layout que dispõe os componentes GUI sequencialmente na janela, da esquerda para a direita, de cima para baixo, como new GridLayout (4,2) new GridLayout (3,5,10,5) new GridLayout (3,5) new GridLayout (5,3) new GridLayout(2,5) new GridLayout(5,2) new GridLayout(6,3) new GridLayout(3,5) Trata o container como se fosse uma "página" ou um "parágrafo" da esquerda para a direita e de cima para baixo. Os componentes são posicionados na ordem inversa que foram adicionados. Questão não Localizada GridLayout é a classe gerenciadora de leiaute que dispõe os componentes GUI em um grid, como se fosse uma grade de uma planilha de cálculo. Então, os new GridLayout (2,4) Questão não Localizada Se a linha for muito longa, os componentes passam para a linha de baixo. É uma classe gerenciadora de layout que arranja os componentes seqüencialmente na janela, da esquerda para a direita, do topo para baixo. Seja um frame "f" criado a partir da seguinte linha de comando: JFrame f=new JFrame(); f.add(BorderLayout()); Questão não Localizada Associe as colunas e marque a alternativa correta: 1. Classe JFrame 2. Classe JComponent 3. Classe JButton 4. GridLayout 5. LayoutManager 6. MouseListener ( ) Classe filha de Container; ( ) Interface proveniente da awt; ( ) Classe filha de Frame proveniente da classe Window; ( ) Classe filha de JComponent; ( ) Classe filha de EventListener; ( ) Classe que implementa LayoutManager. 1,2,4,6,5,3; Questão não Localizada Assinale a alternativa que indica corretamente a chamada ao construtor da classe GridLayout que cria uma grade com 3 linhas e 6 colunas. new GridLayout(3,6) Questão não Localizada De acordo com a definição de FlowLayout, identifique qual das alternativas abaixo NÃO está correta. Os componentes recebem o seu tamanho preferido tanto verticalmente quanto horizontalmente. 2,6,5,4,3,1; f.add(BorderLayout); f.setLayout(BorderLayout); f.new BorderLayout(); f.setLayout(new BorderLayout()); FlowLayout.LEADING FlowLayout.CENTER - GridBagLayout: permite maior controle que o GridLayout. Neste layout você pode definir exatamente como as regiões da sua grade irão se comportar e reformatar caso a janela tenha seu tamanho alterado. Entretanto, é o gerenciador mais complexo de utilizar. Ele foi criado para ser utilizado por programas de criação de GUI's. - BorderLayout: é o padrão. Divide a tela em cinco regiões (NORTH, SOUTH, EAST, WEST, CENTER). Todo componente adicionado entra automaticamente no centro, "empurrando" os outros para as bordas. - FlowLayout: é o mais simples. Ele simplesmente "enche" o container com componentes da esquerda pra direita, até terminar o espaço da linha. Daí, ele faz a mesma coisa na linha abaixo. Todos os componentes sempre terão um espaço do tamanho que eles estão ocupando no momento. - GridLayout: permite construir uma tabela de componentes. Ao adicioná-los, eles são colocados da esquerda para a direita e de cima para baixo em uma grade. Você pode especificar o número de colunas e linhas que serão necessárias, e todas terão o mesmo tamanho. Se existir menos componentes do que o total de espaços, eles ficarão vazios. Caso contrário, o componente excedente não será mostrado. GridLayout FlowLayout BoxLayout GridBagLayout FlowLayout.TRAILING FlowLayout.LEFT Questão não Localizada De acordo com os tipos de Layout, identifique qual das afirmações abaixo está INCORRETA. - BoxLayout: é uma versão simplificada do GridBagLayout. Permite indicar a localização dos componentes em coordenadas X e Y, porém não permite o controle da distância entre componentes. Questão não Localizada EXERCÍCIOS AULA 02 4 08 Q 00 ERROS 08 ACERTOS 100,0 a b c d e 1 8 5 0 0 1 2 nova a x 1 b 0 c 0 710 d 0 e 0 2 nova a 0 b 0 c 0 741 d x 1 e 0 3 748 a 0 b 0 c 0 d 0 e x 1 4 755 a x 1 b 0 c 0 d 0 e 0 5 nova a x 1 b 0 c 0 762 d 0 e 0 6 nova a x 1 b 0 c 0 769 d 0 e 0 7 nova a x 1 b 0 c 0 776 d 0 e 0 8 783 a 0 b 0 c 0 d 0 e x 1 A decisão é tomada usando-se designs padronizados pelo usuário. Associe as colunas e marque a alternativa correta: 1. Classe JFrame 2. Classe JComponent 3. Classe JButton 4. GridLayout 5. LayoutManager 6. MouseListener ( ) Classe filha de Container; ( ) Interface proveniente da awt; ( ) Classe filha de Frame proveniente da classe Window; ( ) Classe filha de JComponent; ( ) Classe filha de EventListener; ( ) Classe que implementa LayoutManager. 1,2,6,4,3,5; 2,6,5,3,4,1; 2,6,5,4,3,1; 2,5,1,3,6,4. 1,2,4,6,5,3; 2,5,1,3,6,4. Assinale a alternativa que indica corretamente a chamada ao construtor da classe GridLayout que cria uma grade com 3 linhas e 6 colunas. new GridLayout(3,5) new GridLayout(5,2) new GridLayout(2,5) new GridLayout(6,3) new GridLayout(3,6) new GridLayout(3,6) De acordo com a definição de FlowLayout, identifique qual das alternativas abaixo NÃO está correta. Os componentes são posicionados na ordem inversa que foram adicionados. É uma classe gerenciadora de layout que arranja os componentes seqüencialmente na janela, da esquerda para a direita, do topo para baixo. Os componentes recebem o seu tamanho preferido tanto verticalmente quanto horizontalmente. Se a linha for muito longa, os componentes passam para a linha de baixo. De acordo com a definição de Gerenciamento de Layout, identifique qual das alternativas abaixo NÃO está correta. A decisão é tomada usando-se designs padronizados pelo usuário. Quando usarmos o método add para acrescentar um componente em um container, o layout manager em uso deve ser levado em consideração. Vários tipos de designs diferentes podem ser combinados para realizar qualquer tela que desejamos. Chamadas possíveis do add: Usando posição relativa (BorderLayout) panel.add(component, BorderLayout.CENTER) e Ordem de adição: (BoxLayout, GridLayout, ...) panel.add(component). A plataforma Java fornece quatro layout managers mais usados: BorderLayout, BoxLayout, FlowLayout, GridLayout. Trata o container como se fosse uma "página" ou um "parágrafo" da esquerda para a direita e de cima para baixo. Os componentes são posicionados na ordem inversa que foram adicionados. GridLayout é a classe gerenciadora de leiaute que dispõe os componentes GUI em um grid, como se fosse uma grade de uma planilha de cálculo. Então, os componentes são colocados em linhas e colunas pré-determinadas. Assinale a alternativa que indica corretamente a chamada ao construtor que cria um grid com 5 linhas e 3 colunas. new GridLayout (5,3) new GridLayout (3,5,10,5) new GridLayout (3,5) new GridLayout (4,2) new GridLayout (2,4) new GridLayout (5,3) "Classe gerenciadora de leiaute que dispõe os componentes GUI em cartões. Apenas um cartão é visível por vez e o contêiner trabalha como se os cartões estivessem empilhados. O primeiro componente adicionado é o componente GUI visível quando o contêiner é apresentado pela primeira vez." Assinale a alternativa que indica a classe gerenciadora acima descrita. CardLayout BoxLayout GridBagLayout FlowLayout GridLayout CardLayout FlowLayout é a classe gerenciadora de layout que dispõe os componentes GUI sequencialmente na janela, da esquerda para a direita, de cima para baixo, como se fosse a escrita de um texto dentro de um parágrafo, à medida que os componentes são adicionados ao container. Utilizando o método setAlignment(int align) podemos definir qual o tipo de alinhamento será utilizado. Assinale a alternativa que apresenta a constante que corresponde ao alinhamento dos componentes para o canto principal de orientação do container, como por exemplo à esquerda em uma orientação da esquerda para direita. FlowLayout.LEADING FlowLayout.CENTER FlowLayout.RIGTH FlowLayout.LEFT FlowLayout.TRAILING FlowLayout.LEADING De acordo com os tipos de Layout, identifique qual das afirmações abaixo está INCORRETA. - BorderLayout: é o padrão. Divide a tela em cinco regiões (NORTH, SOUTH, EAST, WEST, CENTER). Todo componente adicionado entra automaticamente no centro, "empurrando" os outros para as bordas. - GridBagLayout: permite maior controle que o GridLayout. Neste layout você pode definir exatamente como as regiões da sua grade irão se comportar e reformatar caso a janela tenha seu tamanho alterado. Entretanto, é o gerenciador mais complexo de utilizar. Ele foi criado para ser utilizado por programas de criação de GUI's. - GridLayout: permite construir uma tabela de componentes. Ao adicioná-los, eles são colocados da esquerda para a direita e de cima para baixo em uma grade. Você pode especificar o número de colunas e linhas que serão necessárias, e todas terão o mesmo tamanho. Se existir menos componentes do que o total de espaços, eles ficarão vazios. Caso contrário, o componente excedente não será mostrado. - FlowLayout: é o mais simples. Ele simplesmente "enche" o container com componentes da esquerda pra direita, até terminar o espaço da linha. Daí, ele faz a mesma coisa na linha abaixo. Todos os componentes sempre terão um espaço do tamanho que eles estão ocupando no momento. - BoxLayout: é uma versão simplificada do GridBagLayout. Permite indicar a localização dos componentes em coordenadas X e Y, porém não permite o controle da distância entre componentes. - BoxLayout: é uma versão simplificada do GridBagLayout. Permite indicar a localização dos componentes em coordenadas X e Y, porém não permite o controle da distância entre componentes. EXERCÍCIOS AULA 02 5 08 Q 00 ERROS 08 ACERTOS 100,0 a b c d e 1 8 1 1 2 4 0 nova a 0 b 0 c 0 790 d x 1 e 0 2 nova a 0 b x 1 c 0 689 d 0 e 0 3 696 a 0 b 0 c x 1 d 0 e 0 4 nova a 0 b 0 c x 0 d 0 e 0 5 nova a 0 b 0 c 0 724 d x 1 e 0 6 nova a 0 b 0 c 0 717 d x 1 e 0 7 731 a 0 b 0 c 0 d x 1 e 0 8 nova a x 1 b 0 c 0 682 d 0 e 0 Seja um frame "f" criado a partir da seguinte linha de comando: JFrame f=new JFrame(); Marque a opção que traz a forma CORRETA de se estabelecer um um gerenciador de layout para o frame "f". f.setLayout(BorderLayout); f.add(BorderLayout()); f.add(BorderLayout); f.setLayout(new BorderLayout()); f.new BorderLayout(); f.setLayout(new BorderLayout()); "Classe gerenciadora de leiaute que dispõe os componentes GUI sequencialmente na janela, da esquerda para a direita, de cima para baixo". Assinale a alternativa que indica a classe gerenciadora acima descrita. GridLayout FlowLayout BorderLayout CardLayout GridBagLayout FlowLayout Analise as linhas de código abaixo, e assinale a alternativa que descreve corretamente tal processamento: GridLayout layout; layout = new GridLayout(4,6); cria uma grade com 4 linhas e 5 colunas cria uma grade com 7 linhas e 5 colunas cria uma grade com 4 linhas e 6 colunas cria uma grade com 5 linhas e 7 colunas cria uma grade com 6 linhas e 4 colunas cria uma grade com 4 linhas e 6 colunas Os gerenciadores de leiautes organizam os componentes GUI em um contêiner de objetos com o objetivo de construir uma apresentação melhor. Sua função é facilitar a vida do designer na construção das interfaces. Essa funcionalidade permite que o programador se concentre na aparência e nos comportamentos básicos, deixando para o gerenciador de leiaute a responsabilidade do detalhe da aparência. Os contêiners derivados da classe Window podem utilizar os leiautes do tipo: (I) BorderLayout (II) FlowLayout (III) GridLayout (IV) GridBagLayout As opções I e II estão erradas. Apenas a IV está errada. Todas as opções estão corretas. Apenas a opção III está errada. As alternativas I e IV estão erradas. Questão não Localizada Os gerenciadores de layouts organizam os componentes GUI em um container de objetos com o objetivo de construir uma
Compartilhar