1 / 133

Interfaces Gráficas com o Usuário

Marcos Mendes. Interfaces Gráficas com o Usuário. 2011. APIs AWT (Abstract Window Toolkit) e Swing (GUI Components). Pacote java.awt. Descrição

joann
Télécharger la présentation

Interfaces Gráficas com o Usuário

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Marcos Mendes Interfaces Gráficascom o Usuário 2011

  2. APIsAWT (Abstract Window Toolkit)eSwing (GUI Components)

  3. Pacote java.awt Descrição AWT (Abstract Window Toolkit) é uma biblioteca para a programação de interfaces gráficas onde seus elementos dependem do sistema de interface gráfica nativo (plataforma de execução). Componentes de Interface Gráfica Gerenciadores de Layout Manipuladores de Eventos Cores Desenhos de Primitivas Gráficas Tipos de Fontes

  4. Pacote javax.swing Descrição Biblioteca de componentes de interface gráfica. Possui um conjunto maior de componentes do que o AWT. Seus componentes não dependem da plataforma de execução. As aplicações java podem ter a aparência de aplicações nativas (look and feel), a aparência default é chamada de Metal.

  5. Hierarquia de Componentes AWT Object Component Container Window Panel Applet Dialog Frame FileDialog

  6. Hierarquia de Componentes Swing Object Component AWT Container Window Panel JWindow Frame Applet JFrame JApplet Componentes Swing JComponent JPanel JButton JLabel

  7. O mínimo para a construção de Interfaces Gráficas Alguns Componentes JFrame É a tela (formulário) de uma aplicação de interface gráfica. É uma janela que possui uma barra de título, botões de controle e pode apresentar uma barra de menus. JLabel Utilizado para exibir um texto na frame. JTextField Utilizado para entrada de dados textual pelo usuário. JButton Utilizado para disparar a execução de uma ação.

  8. O mínimo para a construção de Interfaces Gráficas Passos sugeridos para a criação de uma tela de interface gráfica. Importe os pacotes necessários. Declare a classe como sendo derivada de JFrame. Declare os componentes como atributos da classe. No método construtor: Crie (instancie) os componentes com o operador new. Adicione os componentes na frame. Defina as características da frame (título, tamanho, etc.). Exiba a frame. No método main( ), instancie a classe. 8

  9. O mínimo para a construção de Interfaces Gráficas //Exemplo de Tela de Interface Gráfica import java.awt.*; import javax.swing.*; public class ExemploInterface extends JFrame { JLabel lblNome; JTextField txtNome; JButton btnOk; public ExemploInterface() { lblNome = new JLabel("Nome:"); txtNome = new JTextField(); btnOk = new JButton("Krikaki"); add(lblNome, "North"); add(txtNome, BorderLayout.CENTER); add("South", btnOk); setTitle("Exemplo de Interface Gráfica"); pack(); setVisible(true); } public static void main(String[] args) { new ExemploInterface(); } } 9

  10. Gerenciadores de Layout Um container utiliza algo chamado Gerenciador de Layout para controlar o posicionamento e dimensionamento de seus componentes. Alguns desses gerenciadores são descritos a seguir: BorderLayout FlowLayout GridLayout GridBagLayout

  11. BorderLayout(java.awt.BorderLayout) North West Center East South

  12. BorderLayout(java.awt.BorderLayout) Construtores BorderLayout ( ) BorderLayout ( int hgap, int vgap ) Alguns Campos CENTER  “Center” EAST  “East” NORTH  “North” SOUTH  “South” WEST  “West” Alguns Métodos void setHgap ( int hgap ) Define o espaço horizontal entre as áreas. void setVgap ( int vgap ) Define o espaço vertical entre as áreas.

  13. FlowLayout (java.awt.FlowLayout)

  14. FlowLayout(java.awt.FlowLayout) Construtores FlowLayout ( ) FlowLayout ( int alinhamento ) FlowLayout (int alinhamento, int hgap, int vgap ) Alguns Campos (alinhamento) CENTER LEFT RIGHT Alguns Métodos void setAlignment ( int alinhamento ) Define o alinhamento horizontal dos componentes. void setHgap ( int hgap ) Define o espaço horizontal entre os componentes. void setVgap ( int vgap ) Define o espaço vertical entre os componentes.

  15. GridLayout (java.awt.GridLayout)

  16. GridLayout(java.awt.GridLayout) Construtores GridLayout ( ) GridLayout ( int rows, int cols ) GridLayout (int rows,int cols, int hgap,int vgap ) Alguns Métodos void setColumns ( int cols ) Define a quantidade de colunas da grade. void setHgap ( int hgap ) Define o espaço horizontal entre as células. void setRows ( int rows ) Define a quantidade de linhas da grade. void setVgap ( int vgap ) Define o espaço vertical entre as células.

  17. GridBagLayout(java.awt.GridBagLayout)

  18. GridBagLayout(java.awt.GridBagLayout) Construtor GridBagLayout ( ) Utilização GridBagLayout gbl = new GridBagLayout( ); painel.setLayout (gbl); GridBagConstraints gbc = new GridBagConstraints( ); gbc.weightx = 100; gbc.weighty = 100; // peso gbc.gridx = 0; gbc.gridy = 0; // posição gbc.gridwidth = 1; gbc.gridheight = 3; // tamanho painel.add ( componente, gbc );

  19. GridBagConstraints(java.awt.GridBagConstraints) Construtores GridBagConstraints ( ) GridBagConstraints (int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill, Insets insets, int ipadx, int ipady )

  20. GridBagConstraints(java.awt.GridBagConstraints) Alguns Campos fill gridx gridy gridheight gridwidth anchor weightx weighty insets ipadx ipady BOTH HORIZONTAL NONE VERTICAL RELATIVE REMAINDER CENTER, EAST, NORTH, NORTHEAST, NORTHWEST, SOUTH, SOUTHEAST, SOUTHWEST, WEST

  21. Exemplo de GridBagLayout import java.awt.*; import javax.swing.*; public class ExemploGBL extends JFrame { JButton btnNorte, btnEsq1, btnEsq2, btnEsq3, btnCentro; public ExemploGBL() { setLayout (new GridBagLayout( )); GridBagConstraints gbc = new GridBagConstraints( ); btnNorte = new JButton("Norte"); gbc.weightx = 30; gbc.weighty = 30; // peso gbc.gridx = 0; gbc.gridy = 0; // posição gbc.gridwidth = 3; gbc.gridheight = 1; // tamanho gbc.fill = GridBagConstraints.BOTH; // preenchimento add (btnNorte, gbc); btnEsq1 = new JButton("Esquerdo 1"); gbc.gridx = 0; gbc.gridy = 1; // posição gbc.gridwidth = 1; gbc.gridheight = 1; // tamanho add(btnEsq1, gbc);

  22. Exemplo de GridBagLayout btnEsq2 = new JButton("Esquerdo 2"); gbc.gridx = 0; gbc.gridy = 2; // posição add(btnEsq2, gbc); btnEsq3 = new JButton("Esquerdo 3"); gbc.gridx = 0; gbc.gridy = 3; // posição add(btnEsq3, gbc); btnCentro = new JButton("Posição Central"); gbc.weightx = 100; gbc.weighty = 100; // peso gbc.gridx = 1; gbc.gridy = 1; // posição gbc.gridwidth = 2; gbc.gridheight = 3; // tamanho add(btnCentro, gbc); pack(); setBounds(100, 50, 300, 200); setVisible(true); } public static void main(String args[]) { new ExemploGBL(); } }

  23. Modificando o Layout dos containers Para alterar o gerenciador de layout de um container, você invoca o método setLayout( ) com uma instância do gerenciador de layout desejado. Normalmente a chamada deste método ocorre no construtor da classe da GUI. ... setLayout( new FlowLayout( ) ); ... Quando utilizado o gerenciador de layout GridBagLayout, deve-se definir um constraints para cada componente.

  24. Agrupando componentes em painéis Pode-se adicionar diretamente em uma área do layout apenas um único componente. Para se adicionar vários componentes, é necessário agrupá-los em painéis, aí então adicioná-se o painel na posição de layout desejada.

  25. Agrupando componentes em painéis import javax.swing.*; public class TestaPainel extends JFrame { JButton btn1, btn2, btn3; JPanel p; public TestaPainel() { btn1 = new JButton("Botão 1"); btn2 = new JButton("Botão 2"); btn3 = new JButton("Botão 3"); p = new JPanel(); p.add(btn1); p.add(btn2); p.add(btn3); add(p, "South"); setBounds(100, 50, 200, 300); setVisible( true ); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String args[]) { new TestaPainel(); } }

  26. Alguns Containers Swing JFrame JPanel JOptionPane JFileChooser JColorChooser JEditorPane JTabbedPane Container é um componente que aloca outros componentes.

  27. JFrame (javax.swing.JFrame) É a tela (formulário) de uma aplicação de interface gráfica. É uma janela que possui uma barra de título, botões de controle e pode apresentar uma barra de menus. Alguns Construtores JFrame ( ) JFrame (String titulo) Alguns Métodos Componentadd(Componentcomponente) ( ) Adiciona um componente na frame. void pack ( ) Define um tamanho mínimo para a frame. void setSize (int largura, int altura) Define o tamanho da frame. void setLocation (int margemEsquerda, int margemSuperior) Define a posição no monitor de vídeo do canto superior esquerdo da frame. void setBounds (int margemEsquerda, int margemSuperior, int largura, int altura) Define o tamanho e a posição da frame. void setVisible (boolean visível) Define se a frame está ou não visível.

  28. JFrame (javax.swing.JFrame) void setDefaultCloseOperation (int operação) Define qual operação será realizada ao fechar a frame. void setLayout (LayoutManager gerenciador) Define o gerenciador de layout que será utilizado pela frame. void setLocationRelativeTo (Component componente) Define a posição da frame relativamente a um componente. Se o componente for null, a frame será centralizada no vídeo. void setIconImage(Image imagem) Define a imagem que será usada como ícone a frame. void setResizable (boolean alteraTamanho) Define se o tamanho da frame pode ser alterado ou não pelo usuário. void setMinimumSize (Dimension tamanhoMínimo) Define o tamanho mínimo que a frame pode ter. void setJMenuBar (JMenuBar menu) Define uma barra de menu para a frame. void setUndecorated (boolean decorar) Define se a barra de título e a borda da frame irão aparecer ou não. 28

  29. JFrame (javax.swing.JFrame) Método setDefaultCloseOperation() Define a operação que deverá ser executada quando o usuário fechar a frame. O valor da operação pode ser um dos seguintes: DO_NOTHING_ON_CLOSE (definido em WindowConstants): Não faz nada; o programa deve controlar o fechamento através de um ouvinte de janela. HIDE_ON_CLOSE (definido em WindowConstants): Automaticamente esconde a frame. DISPOSE_ON_CLOSE (definido em WindowConstants): Automaticamente esconde e elimina a frame. EXIT_ON_CLOSE (definido em JFrame): Encerra a aplicação usando o método System.exit(). O valor default é HIDE_ON_CLOSE.

  30. JFrame (javax.swing.JFrame) import java.awt.*; import javax.swing.*; public class ExemploJFrame extends JFrame { public ExemploJFrame() { setSize(300, 200); setMinimumSize(new Dimension(300, 200)); //setResizable(false); setLocationRelativeTo(null); Toolkit tk = getToolkit(); Image img = tk.getImage("duke.jpg"); setIconImage(img); setTitle("Exemplo de Janela"); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new ExemploJFrame(); } }

  31. JPanel (javax.swing.JPanel) Componente utilizado para agrupar componentes em uma determinada área da frame. Alguns Construtores JPanel ( ) JPanel ( LayoutManager gerenciador )

  32. Alguns Componentes Swing JLabel JTextField JTextArea JButton JToggleButton JCheckbox ButtonGroup JRadioButton JList JComboBox

  33. JComponent( javax.swing.JComponent ) Construtor JComponent ( ) Alguns Métodos void setBackground ( Color corDeFundo ) Define a cor de fundo do componente. void setForeground ( Color corDeFrente ) Define a cor da "letra" do componente. void setFont ( Fonte tipo ) Define a fonte do componente. void setToolTipText ( String dica ) Define o texto de ajuda do componente.

  34. JComponent( javax.swing.JComponent ) void setOpaque ( boolean flag ) Define se o componente é opaco ou transparente. void setBorder ( Border borda ) Define a borda do componente. Graphics getGraphics ( ) Retorna o contexto gráfico do componente. void paintComponent ( Graphics g ) Pinta o componente. Normalmente é sobreposto. void setVisible ( boolean flag ) Define se o componente está visível ou não. 34

  35. JLabel ( javax.swing.JLabel ) Construtores JLabel ( ) JLabel ( Icon ícone ) JLabel ( Icon ícone, int alinhamento ) JLabel ( String texto ) JLabel ( String texto, Icon ícone, int alinhamento ) JLabel ( String texto, int alinhamento )

  36. JLabel ( javax.swing.JLabel ) Alguns Métodos String getText ( ) Retorna o texto do label. void setHorizontalAlignment ( int alinhamento ) Define o alinhamento horizontal. void setHorizontalTextPosition ( int posição ) Define a posição do texto em relação à imagem. void setIcon ( Icon ícone ) Define uma imagem para o label void setText ( String texto ) Define o texto do label void setVerticalAlignment ( int alinhamento ) Define o alinhamento vertical. void setVerticalTextPosition ( int posição ) Define a posição do texto em relação à imagem.

  37. JTextField ( javax.swing.JTextField ) Alguns Construtores JTextField ( ) JTextField ( int colunas ) JTextField ( String texto ) JTextField ( String texto, int colunas )

  38. JTextField ( javax.swing.JTextField ) Alguns Métodos void addActionListener ( ActionListener ouvinte ) Adiciona um ouvinte de ação ao componente. String getSelectedText ( ) Retorna o texto selecionado. int getSelectionEnd ( ) Retorna a posição final da seleção. int getSelectionStart ( ) Retorna a posição inicial da seleção. String getText ( ) String getText ( int posição, int tamanho ) Retorna o texto do componente. bollean isEditable ( ) Informa se o componente pode ser editado.

  39. JTextField ( javax.swing.JTextField ) void replaceSelection ( String texto ) Troca o texto selecionado. void select ( int início, int fim ) Seleciona uma parte do texto. void selectAll ( ) Seleciona todo o texto. void setColumns ( int colunas ) Define a quantidade de colunas do componente. void setEditable ( boolean b ) Define se o componente poderá ser editado. void setHorizontalAlignment ( int alinhamento ) Define o alinhamento horizontal do texto. void setText ( String texto ) Define o texto do componente.

  40. JTextArea ( javax.swing.JTextArea ) Alguns Construtores JTextArea ( ) JTextArea (int linhas, int colunas ) JTextArea ( String texto ) JTextArea ( String texto, intcolunas, intlinhas ) 40

  41. JTextArea ( javax.swing.JTextArea ) Alguns Métodos void append ( String texto ) Adiciona um texto ao conteúdo do componente. int getColumns ( ) Retorna o número de colunas do componente. int getRows ( ) Retorna o número de linhas do componente. int getLineCount ( ) Retorna o quantidade de linhas de texto contidas no componente. void setLineWrap ( boolean quebra ) Define se há (true) ou não a quebra de linhas. bollean setWrapStyleWord ( boolean estilo) Define se as quebras de linha ocorrem entre as palavras (true). 41

  42. JButton ( javax.swing.JButton ) Construtores JButton ( ) JButton ( Icon ícone ) JButton ( String texto) JButton ( String texto, Icon ícone)

  43. JButton ( javax.swing.JButton ) Alguns Métodos void addActionListener ( ActionListener ouvinte ) Adiciona um ouvinte de ação ao componente. String getText ( ) Retorna o texto do componente. void doClick ( ) Executa programaticamente um click no componente. void setEnable ( boolean estado ) Define se o componente está ativado. void setHorizontalAlignment ( int alinhamento ) Define o alinhamento horizontal do texto. void setHorizontalPosition ( int posição ) Define a posição do texto em relação à imagem. void setIcon ( Icon ícone ) Define uma imagem para o componente.

  44. JButton ( javax.swing.JButton ) void setMnemonic ( char atalho ) Define uma tecla de atalho para o componente. void setPressedIcon ( Icon ícone ) Define a imagem que será exibida quando o componente for pressionado. void setRolloverEnabled ( boolean estado ) Define se o efeito rollover está ativado ou não. void setRolloverIcon ( Icon ícone ) Define a imagem que será exibida quando o mouse passar por cima do componente. void setText ( String texto ) Define o texto do componente. void setVerticalAlignment ( int alinhamento ) Define o alinhamento vertical do texto. void setVerticalPosition ( int posição ) Define a posição do texto em relação à imagem.

  45. Exemplo de Componente Swing import javax.swing.*; public class ExemploJButton extends JFrame { JButton btn; public ExemploJButton( ) { setTitle ("Exemplo de Botão" ); setSize (300, 200); btn = new JButton ("Botão de Teste" ); btn.setIcon ( new ImageIcon ("f:duke.jpg") ); btn.setRolloverIcon(new ImageIcon ("f:duke2.jpg")); btn.setPressedIcon(new ImageIcon ("f:duke3.jpg")); btn.setToolTipText ("Dica do componente" ); btn.setMnemonic ( 'B' ); add ( btn, "North" ); setVisible( true ); } public static void main(String[] args) { new ExemploJButton(); } }

  46. Exercício proposto Crie a seguinte interface: Agenda Pessoal Nome: Endereço: Telefone: Anterior Próximo Sair

  47. Exercício Programa de Cálculos Par / Ímpar Programa de Cálculos Número: Fatorial Perfeito Primo Resultado: ___________

  48. Criação de um Painel com Borda de Título JPanel p = new JPanel ( new GridLayout(linhas, colunas) ); TitledBorder titulo = BorderFactory.createTitledBorder("Título"); p.setBorder(titulo); Outros métodos da classe BorderFactory para criação de bordas: createLineBorder ( ) Borda de linha simples createMatteBorder ( ) Borda larga preenchida com uma cor ou ícone repetido. createEmptyBorder ( ) Borda vazia createEtechedBorder ( ) Borda de linha com efeito 3D. createBevelBorder( ) createLoweredBevelBorder ( ) createRaisedBevelBorder ( ) Bordas com efeito de superfície em relevo.

  49. JCheckBox ( javax.swing.JCheckBox ) Alguns Construtores JCheckBox ( ) JCheckBox ( String texto ) JCheckBox ( String texto, boolean estado )

  50. JCheckBox ( javax.swing.JCheckBox ) Alguns Métodos boolean isSelected ( ) Retorna true se o componente estiver selecionado. void setSelected ( boolean estado ) Define o estado do componente. String getText ( ) Retorna o rótulo do componente. void setText ( String texo ) Define o rótulo do componente. void setActionCommand ( String texto) Define o texto de ação de commando do componente. void addAcitonListener ( ActionListener a ) void addItemListener ( ItemListener i )

More Related