A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação em Java JPanel e Gerenciadores de Layout Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Interfaces Gráficas Jpanel e Diagramadores.

Apresentações semelhantes


Apresentação em tema: "Programação em Java JPanel e Gerenciadores de Layout Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Interfaces Gráficas Jpanel e Diagramadores."— Transcrição da apresentação:

1 Programação em Java JPanel e Gerenciadores de Layout Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Interfaces Gráficas Jpanel e Diagramadores javax.swing.JPanel Modela um container sem decoração; Representa um grupo de elementos; Normalmente usado para estruturar a interface; Associado a um diagramador; Default: Flow Layout Métodos de JPanel Construtores: public JPanel(); public JPanel(LayoutManager layout); Outros métodos setSize(int largura, int altura); setBorder(Border borda); setBackground(Color cor); setVisible(Boolean estado); setLayout(LayoutManager layout); setFont(Font fonte); add(Component componente); Exercício 1 Construa uma janela e adicione um JPanel nela. Mude alguns parâmetros: tamanho, cor, borda, visibilidade. Bordas Qualquer Jcomponent pode possuir bordas; Usar o método setBorder(Border borda); A classe BorderFactory pode ser usada Exemplo: JPanel painel = new JPanel(); painel.setBorder(BorderFactory.createLineBorder( Color.black)); Ver BorderDemo.java How to Use Borders Gerenciadores de Layout Os gerenciadores de layout são fornecidos para organizar componentes GUI em um container para que estes sejam apresentados; Disponíveis: FlowLayout BorderLayout GridLayout BoxLayout CardLayout GridBagLayout null java.awt.FlowLayout Coloca os componentes lado a lado, uma linha após a outra; Alinhamento: centralizado (default), à esquerda ou à direita; Default para o JPanel. Exemplo de FlowLayout Container contentPane = janela.getContentPane(); contentPane.setLayout(new FlowLayout()); contentPane.add(new JButton("Button 1")); contentPane.add(new JButton("2")); contentPane.add(new JButton("Button 3")); contentPane.add(new JButton("Long-Named Button 4")); contentPane.add(new JButton("Button 5")); java.awt.BorderLayout Divide o container em 5 áreas: norte, sul, leste, oeste e centro; Default para content pane do JFrame. Exemplo de BorderLayout Container contentPane = janela.getContentPane(); //contentPane.setLayout(new BorderLayout()); contentPane.add(new JButton("Button 1 (NORTH)"), BorderLayout.NORTH); contentPane.add(new JButton("2 (CENTER)"), BorderLayout.CENTER); contentPane.add(new JButton("Button 3 (WEST)"), BorderLayout.WEST); contentPane.add(new JButton("Long-Named Button 4 (SOUTH)"), BorderLayout.SOUTH); contentPane.add(new JButton("Button 5 (EAST)"), BorderLayout.EAST); java.awt.GridLayout Células do mesmo tamanho especificadas pelo número de linhas e colunas. Exemplo de GridLayout Container contentPane = janela.getContentPane(); contentPane.setLayout(new GridLayout(0,2)); contentPane.add(new JButton("Button 1")); contentPane.add(new JButton("2")); contentPane.add(new JButton("Button 3")); contentPane.add(new JButton("Long-Named Button 4")); contentPane.add(new JButton("Button 5"));

2 javax.swing.JPanel Modela um container sem decoração; Representa um grupo de elementos; Normalmente usado para estruturar a interface; Layout Default: FlowLayout

3 Métodos de JPanel Construtores: public JPanel(); public JPanel(LayoutManager layout); Outros métodos setSize(int largura, int altura); setBorder(Border borda); setBackground(Color cor); setVisible(Boolean estado); setLayout(LayoutManager layout); setFont(Font fonte); add(Component componente);

4 Exemplo import java.awt.*; import javax.swing.*; public class Paineis extends JFrame { public Paineis() { //altera o tamanho do frame (x,y) em pixels this.setSize(400,400); //operacao padrao ao fechar o frame this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel painel = new JPanel(); //Adiciona o painel no centro do frame (contentPane) this.add(painel, BorderLayout.CENTER); this.setVisible(true); } public static void main(String[] args) { new Paineis(); }

5 Bordas Qualquer Jcomponent pode possuir bordas; Usar o método setBorder(Border borda); A classe BorderFactory pode auxiliar Exemplo: Ver BorderDemo.java JPanel painel = new JPanel(); painel.setBorder(BorderFactory. createLineBorder(Color.black));

6 Gerenciadores de Layout Os gerenciadores de layout são fornecidos para organizar componentes GUI em um container para que estes sejam apresentados Disponíveis: FlowLayout BorderLayout BoxLayout GridLayout GridBagLayout null

7 java.awt.FlowLayout Coloca os componentes lado a lado, uma linha após a outra; Alinhamento: centralizado (default), à esquerda ou à direita; Default para o JPanel.

8 Exemplo de FlowLayout Container contentPane = janela.getContentPane(); contentPane.setLayout(new FlowLayout()); contentPane.add(new JButton("Button 1")); contentPane.add(new JButton("2")); contentPane.add(new JButton("Button 3")); contentPane.add(new JButton("Long-Named Button 4")); contentPane.add(new JButton("Button 5"));

9 java.awt.BorderLayout Divide o container em 5 áreas: norte, sul, leste, oeste e centro; Default para content pane do JFrame.

10 Exemplo de BorderLayout Container contentPane = janela.getContentPane(); //contentPane.setLayout(new BorderLayout()); contentPane.add(new JButton("Button 1 (NORTH)"), BorderLayout.NORTH); contentPane.add(new JButton("2 (CENTER)"), BorderLayout.CENTER); contentPane.add(new JButton("Button 3 (WEST)"), BorderLayout.WEST); contentPane.add(new JButton("Long-Named Button 4 (SOUTH)"), BorderLayout.SOUTH); contentPane.add(new JButton("Button 5 (EAST)"), BorderLayout.EAST);

11 javax.swing.BoxLayout Permite que os componentes sejam organizados da esquerda para a direita ou de cima para baixo em um container. new BoxLayout(getJContentPane(), BoxLayout.Y_AXIS) new BoxLayout(getJContentPane(), BoxLayout.X_AXIS)

12 java.awt.GridLayout Células do mesmo tamanho especificadas pelo número de linhas e colunas.

13 Exemplo GridLayout Container contentPane = janela.getContentPane(); contentPane.setLayout(new GridLayout(0,2)); contentPane.add(new JButton("Button 1")); contentPane.add(new JButton("2")); contentPane.add(new JButton("Button 3")); contentPane.add(new JButton("Long-Named Button 4")); contentPane.add(new JButton("Button 5"));

14 javax.swing.GridBagLayout É o mais poderoso dos gerenciadores de layout Os componentes adicionados para o layout podem variar em tamanho, isto é, eles podem ocupar múltiplas linhas e colunas Podem ser adicionados em qualquer ordem; A tela é dividida em linhas e colunas representando as células que serão ocupadas pelos componentes

15 javax.swing.GridBagLayout

16 Duas classes são importantes para definição do layout. GridBagConstraints Insets GridBagConstraints. GridBagConstraints() GridBagConstraints(int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill, Insets insets, int ipadx, int ipady)

17

18 GridBagLayout - Insets Insets(int top, int left, int bottom, int right)

19 Exemplo GridBagLayout

20

21 Null – Ausência de Gerenciador Existe também a possibilidade de se indicar null para o tipo de layout. Significa que nenhum dos gerenciadores serão utilizados. O posicionamento passa a ser absoluto, dependente de plataforma e resolução de vídeo. Deve então utilizar o método: setBounds(x, y, width, height) onde: x (deslocamento a partir da esquerda – eixo x) y (deslocamento a partir do topo – eixo y) width (tamanho) height (altura).

22 Parâmetros setBounds(50, 35, 30, 20); ( x,Y, largura, altura)

23 public class PosicaoAbsoluta extends JFrame { private JLabel lblLNome = new JLabel("Nome:"); private JTextField txtLNome = new JTextField(); private JLabel lblLEndereco = new JLabel("Endereço:"); private JTextField txtLEndereco = new JTextField(); public PosicaoAbsoluta() { Container container = getContentPane(); container.setLayout(null); lblLNome.setBounds(new Rectangle(35, 35, 100, 19)); txtLNome.setBounds(new Rectangle(101, 36, 300, 20)); container.add(lblLNome); container.add(txtLNome); lblLEndereco.setBounds(new Rectangle(35, 75, 100, 19)); txtLEndereco.setBounds(new Rectangle(101, 76, 300, 20)); container.add(lblLEndereco); container.add(txtLEndereco); setSize(520, 180); setVisible(true); } Exemplo Null


Carregar ppt "Programação em Java JPanel e Gerenciadores de Layout Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Interfaces Gráficas Jpanel e Diagramadores."

Apresentações semelhantes


Anúncios Google