Questões do Livro Rafael, Luimar e Tatiane Página 50 1. Descreva o método setTitle da classe Frame. Resp.: Usado para definir o título para a janela do aplicativo. 2. É possível saber se uma janela criada com a classe JFrame pode ou não ser redimensionada com uma chamada ao método: Public boolean isResizable( ) Esta afirmação é: a) verdadeira. b) falsa. Resp.: Esta afirmação é verdadeira, pois com o método posso redimencionar bastando informa se ele recebe true ou false. 3. Desenhe a hierarquia de classes Java partindo da classe Java.lang.Object e indo até javax.swing.JFrame e responda às questões seguintes: a) Container herda de window? Resp : Não conforme a hierarquia das classes a classe window é quem herda da classe container. b) Frame herda de component? Sim, pois todas as classes em comum herdam da classe component, não diretamente porque antes dela vem a window. 4. O método setSize usado para definir a altura e a largura de uma janela é originalmente definido em qual classe? Resp.: classe JFrame , primeira janela. 5. Escreva um aplicativo que exiba sua janela posicionando os lados superior e esquerdo na coordenada 50 ,50 da tela. Dica use o método setLocation. Resp: package exercicios; import java.awt.BorderLayout; import javax.swing.JPanel; import javax.swing.JFrame; public class ex_livro extends JFrame { private JPanel jContentPane = null; public static void main(String[] args) { ex_livro c = new ex_livro();// TODO Auto-generated method stub } public ex_livro() { super(); initialize(); } private void initialize() { this.setSize(300, 200); this.setLocation(new java.awt.Point(50,50)); this.setContentPane(getJContentPane()); this.setTitle("Ex_livro"); this.setVisible(true); } private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); } return jContentPane; } } 6. Qual o resultado do código seguinte? Resp.: Por não ser um método Frame, não terá efeito visual, mostrando apenas a área da tela em pixels que esta sendo utilizada: O tamanho da Tela é: 800x600. package exercicios; import java.awt.*; public class TamanhoTela { public static void main(String args[]){ Toolkit toolkit = Toolkit.getDefaultToolkit(); Dimension tela = toolkit.getScreenSize(); int lar=tela.width; int alt=tela.height; System.out.println("O tamanho da tela é: " + lar + "x" + alt); } } ================================================================= Página 66 1 ) O método addActionListener é originalmente definido na classe Componente essa afirmação é : a) Verdadeira b) Falsa Resp. Falsa, porque vem de ActionEvent (java.awt.event) 2) Escreva um aplicativo cuja janela contenha duas caixas de texto e um botão. Solicite ao usuário que digite valores numéricos de cada uma das caixas de texto. Ao clicar no botão, uma caixa de mensagem deve exibir a soma dos dois valores. Resp: package exercicios; import java.awt.BorderLayout; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.JLabel; import javax.swing.JButton; public class ex_livro extends JFrame { private JPanel jContentPane = null; private JPanel jPanel = null; private JTextField jTxt1 = null; private JTextField jTxt2 = null; private JLabel jLabel = null; private JLabel jLabel1 = null; private JLabel jLabel2 = null; private JButton jButton = null; private JPanel getJPanel() { if (jPanel == null) { jLabel2 = new JLabel(); jLabel2.setBounds(new java.awt.Rectangle(60,15,140,16)); jLabel2.setText("Digite dois números"); jLabel1 = new JLabel(); jLabel1.setBounds(new java.awt.Rectangle(40,81,90,16)); jLabel1.setText("Numero 2"); jLabel = new JLabel(); jLabel.setBounds(new java.awt.Rectangle(45,53,73,16)); jLabel.setText("Numero 1"); jPanel = new JPanel(); jPanel.setLayout(null); jPanel.add(getJTxt1(), null); jPanel.add(getJTxt2(), null); jPanel.add(jLabel, null); jPanel.add(jLabel1, null); jPanel.add(jLabel2, null); jPanel.add(getJButton(), null); } return jPanel; } private JTextField getJTxt1() { if (jTxt1 == null) { jTxt1 = new JTextField(); jTxt1.setBounds(new java.awt.Rectangle(148,51,122,20)); } return jTxt1; } private JTextField getJTxt2() { if (jTxt2 == null) { jTxt2 = new JTextField(); jTxt2.setBounds(new java.awt.Rectangle(149,82,122,20)); } return jTxt2; } private JButton getJButton() { if (jButton == null) { jButton = new JButton(); jButton.setBounds(new java.awt.Rectangle(105,130,75,20)); jButton.setText("Soma"); jButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { float soma; soma=0; float z = Float.parseFloat(jTxt1.getText()); float y = Float.parseFloat(jTxt2.getText()); soma= z+y; JOptionPane.showMessageDialog(null,String.valueOf(soma)); } }); } return jButton; } public static void main(String[] args) { ex_livro c = new ex_livro();// TODO Auto-generated method stub } public ex_livro() { super(); initialize();} private void initialize() { this.setSize(300, 200); this.setContentPane(getJContentPane()); this.setTitle("JFrame"); this.setVisible(true); } private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); jContentPane.add(getJPanel(), java.awt.BorderLayout.CENTER); } return jContentPane; } } 3) Crie um aplicativo que permita ao usuário digitar uma frase. Quando o usuário pressionar a tecla Enter na caixa de texto, uma caixa de mensagem deve informar a quantidade de palavras digitadas. Não use botões nesse aplicativo. package exercicios; import javax.swing.SwingUtilities; import java.awt.BorderLayout; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JTextField; import java.awt.Rectangle; import javax.swing.JLabel; public class livro extends JFrame { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JTextField txt = null; private JLabel jLabel = null; /** * This method initializes txtct * * @return javax.swing.JTextField */ private JTextField getTxt() { if (txt == null) { txt = new JTextField(); txt.setBounds(new Rectangle(62, 76, 161, 41)); txt.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent e) { int y=txt.getText().length()+1; JOptionPane.showMessageDialog(null,String.valueOf(y)); } }); } return txt; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub livro ct= new livro(); SwingUtilities.invokeLater(new Runnable() { public void run() { livro thisClass = new livro(); thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thisClass.setVisible(true); } }); } /** * This is the default constructor */ public livro() { super(); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(300, 200); this.setContentPane(getJContentPane()); this.setTitle("Ex. livro"); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jLabel = new JLabel(); jLabel.setBounds(new java.awt.Rectangle(86,19,141,16)); jLabel.setText("Digite uma mensagem:"); jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.add(getTxt(), null); jContentPane.add(jLabel, null); } return jContentPane; } } 4) Explique o método getComponents da Classe Container. Escreva um aplicativo exemplificando seu uso. Resp.: getComponent retorna o originador do evento, ou seja, retorna o objeto componente que originou o evento ou zero se o objeto não for um componente. import javax.swing.*; import java.awt.*; public class Controles3 extends JFrame{ Container tela; public Controles3(){ super("Adicionando controles à janela"); tela = getContentPane(); FlowLayout layout = new FlowLayout(); layout.setAlignment(FlowLayout.LEFT); tela.setLayout(layout); JLabel rotulo = new JLabel("Seu Nome:"); JTextField nome = new JTextField(10); JButton btn = new JButton("OK!"); tela.add(rotulo); tela.add(nome); tela.add(btn); setSize(300, 100); setVisible(true); } public static void main(String args[]){ Controles3 app = new Controles3(); int quant = app.tela.getComponentCount(); JOptionPane.showMessageDialog(null, "Numero de Controles: " + quant); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } 5) Para que serve o método parselnt da classe Integer? Resp.: o método parseInt serve para transformar um número ou texto em números inteiros. Pág. 91 1) Defina os métodos setTexte e getText da Classe JLabel: Resp.: setText define o texto que será exibido e getText retorna o texto que é apresentado por este componente do texto. 2) Qual o resultado do código? Resp.: o código nos fornece um programa com 20 botões que ao clicar neles aparece uma caixa de diálogo com o nome do respectivo botão. 3)Analise as duas linhas de códigoseguinte e escolha a alternativa correta: Resp.: letra c. 4) Resp.: modificando o código para getActionCommand(); não influenciará em nada. Entao a resposta é verdadeira. 5) Resp.: sim é possível criar. Ex: package exercicios; import javax.swing.*; import java.awt.*; import javax.swing.JButton; import javax.swing.JPanel; public class livro extends JFrame{ private JButton jButton = null; private JPanel jPanel = null; public livro(){ super("Uso de HTML em um objeto JLabel"); initialize(); Container tela = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); tela.setLayout(layout); JButton rotulo = new JButton("<html><font color=\"red\">Veja</font> <u>a formatação deste</u><p> <i>texto</i>. <s>Note a quebra de linha</s></html>"); tela.add(rotulo); setSize(300, 100); setVisible(true); } /** * This method initializes this * */ private void initialize() { this.setSize(new java.awt.Dimension(255,164)); this.setVisible(true); } /** * This method initializes jButton * * @return javax.swing.JButton */ /** * This method initializes jPanel * * @return javax.swing.JPanel */ public static void main(String args[]){ livro app = new livro(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } // @jve:decl-index=0:visual-constraint="10,10"