Java swingcomponentes

261 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
261
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Java swingcomponentes

  1. 1. 1SwingFernando GoulartMaristela HolandaLeila de Fátima CarvalhoJava e Interfaces GráficasDesktop WEB MóvelDadosDados________________________________________________________________OutraAplicaçãoouLegadoApresentaApresentaççãoãoNegNegóóciocioDados ouDados ouPersistênciaPersistênciaAWT x SwingJava fornece um suporte para construção deaplicações gráficas por meio de duas interfaces:AWT (Abstract Windowing Toolkit) . Inicialmente oúnico tipo de ferramentas, até a versão 1.1. Todas asclasses estão no pacote java.awt. É bastante incompleta:faltam Table, TabbedPane, Slider etc. Dependente deplataforma (peer-model) e comportamento heterogêneo.Swing/JFC (Java Foundation Class) – surgiu na versãoJDK1.2. Substituiu AWT, mas ainda compartilham partesfundamentais (como eventos). Atualmente as classes estãono pacote javax.swing. São “lightweight components”,independentes de plataforma.AWT x Swing/JFCHá compatibilidade entre os componentes AWT e SwingHá componentes Swing que herdam de componentesAWT. Exemplo: o componente JFrame, que fornece ajanela principal da aplicação, é derivado da classe Frame.Os nomes dos componentes JFC/Swing sempre começamcom “J”.Não mais utilizar os componentes AWT: usar oscomponentes correspondentes criados no Swing.São dois grandes exemplos de reuso: não é necessárioreescrever código, mas apenas utilizar as funcionalidadesimplementadas nesses pacotes.Os 3 elementos AWT/SwingComponentes gráficos: são elementos que ousuário manipula com o mouse ou com o teclado.Gerenciadores de layout: governam amaneira pela qual os componentes aparecem na tela.Eventos: assinalam ações do usuário consideradasimportantes, como o click do mouse em um botão.Java adota o tipo de programação dirigida poreventos: um evento ocorrido é tratado por eventlistener, uma categoria especial de classes.Componentes
  2. 2. 2Gerenciadores de layout EventosJWindowDialogFrameJLabelAbstractButtonJPanelJRootPaneJDialogJFrameJButtonWindowJComponentContainerComponentHierarquia JComponent – totalmente Swing/JFC1 - Uma aparência (”pluggable look and feel ”) que pode ser especificadapelo programador ou (opcionalmente) selecionada pelo usuário emtempo de execução.
  3. 3. 3JComponent2 - Diversos tipos de borda, que também definem os limites docomponente.JComponent3 - A habilidade para definir o tamanho máximo, mínimo e preferido deum componente, mesmo se a tela for redimensionada.4 - ToolTip: faixa de texto que aparece quando o cursor passa sobre ocomponente.JFrameÉ o tipo mais especializado de janela Java.Possui uma barra de título e uma borda.JFrame é derivado do controle da AWT.Permite interações através de teclado emouse.Incluir no código: import javax.swing.*;É um container: pode conter outroscomponentes.JFramePossui 5 subcontainers. Por isso, éligeiramente incompatível comjava.awt.Frame, que não possuisubcontainers.um gerenciador de layout éautomaticamente associado a cada um deseus subcontainers.Os containers de JFrameConsulte: http://java.sun.com/products/jfc/tsc/articles/containers/index.htmlJJContentPaneOs containers de JFrame11 -- JRootPaneJRootPane: container principal de JFrame, gerencia os demaissubcontainers.Consulte:http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html22 -- JLayeredPaneJLayeredPane: adiciona profundidade a um container, permitindosobreposição de componentes, quando necessário. Veja exemplos em:http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html#layeredpane.
  4. 4. 4Os containers de JFrame3 - MenuBar: encapsula os conceitos da plataforma para os limites dabarra de menu. Para associar uma barra de menu à janela, chamarsetMenuBar. O gerenciador de layout default é o BoxLayout.Consulte:http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html44 -- GlassPane: o painel de vidro, a vidraça. Permite interceptar ouimpedir eventos de mouse, torna os componentes gráficos inacessíveis,embora visíveis. Consulte:http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html#glasspaneOs containers de JFrame55 -- ContentPaneContentPane: é área de trabalho onde adicionamos diretamente nossoscomponentes. O gerenciador de layout default é o BorderLayoutBorderLayout. Para obtereste componente, execute objJanela.getContentPane( ). Consulte:http://java.sun.com/docs/books/tutorial/uiswing/components/toplevel.htmlJFrame - exemploimport javax.swing.JFrame;public class MeuPrimeiroFrame extends JFrame{public MeuPrimeiroFrame(){super("Meu Primeiro JFrame");this.setSize(200, 200);this.setVisible(true);}public static void main(String[] args) {MeuPrimeiroFrame frame = new MeuPrimeiroFrame();}}JFrameimport javax.swing.JFrame;public class MeuSegundoFrame {JFrame quadro;public MeuSegundoFrame(){quadro = new JFrame("Meu Segundo Frame");quadro.setSize(200,200);quadro.setVisible(true);}public static void main(String args[]){MeuSegundoFrame janela = new MeuSegundoFrame();}}Interfaces gráficas - boaspráticasOs atributos de instância devem ter visibilidadeprivate.Os métodos de instância devem ter visibilidadepublic.Por legibilidade, declare os atributospreferencialmente logo no início da classe.Também podem ser declarados ao final, apóstodos os métodos.Instancie os atributos dentro do construtor, ounos métodos correspondentes chamados por ele.Interfaces gráficas - boas práticasConfigure agrupadamente todas ascaracterísticas de um atributo. Para tratar opróximo atributo, salte uma linha e recomeceo mesmo processo.Deixe para o final da classe a área deadicionar atributos aos containers, isto é, achamada dos métodos add .O setVisible(true) deve aparecer como últimainstrução.
  5. 5. 5Interfaces gráficas - boas práticas - exemplo//importsimport ...public class BoasPraticas {//declaraçãoprivate JPanel p;private Jframe j;public BoasPraticas () {//instanciaçãop = new JPanel();...//configuração de cada atributop.setBackground(Color.GREEN);...//adição aos containersc.add(p);....j.setVisible(true);}public static void main(String args[]){BoasPraticas tela = new BoasPraticas ( );} }Alguns componentesClasses Básicas (Color, Font, etc...)Color: atribui cor (frente ou fundo) ao componente, através dacomposição primária de vermelho, verde e azul (padrão RGB). Use:1 - o construtor Color(int red, int green, int blue);2 - ou as Constantes (também em minúsculas):BLACK BLUE CYANDARK_GRAY GRAY GREENLIGHT_GRAY MAGENTA ORANGEPINK RED WHITEYELLOWExemplo: Color c = new Color (255, 51, 0); //redFontFont: determina a fonte (letra) em que os rótulos serãoescritos.Use o construtorFont(String nome, int estilo, int tamanho).Estilo: PLAIN, BOLD, ITALIC (use o + para juntarestilos)Exemplo: Font f = new Font(“arial”, Font.BOLD, 14);Font f = new Font(“arial”, Font.BOLD + Font.ITALIC, 14);Diálogos Pré-definidosO Swing oferece um conjunto dediálogos simples pré-definidos para usoem interações breves com o usuáriomensagens de erro, de alertaobtenção de uma confirmaçãoentrada de um único campo de textoClasse JOptionPaneEstrutura básica:íconemensagementrada de dadosbotões de opção
  6. 6. 6MessageDialogExibe uma mensagem e aguarda OK dousuárioINFORMATIONQUESTIONWARNINGERRORPLAINExemplo de MessageDialogJOptionPane.showMessageDialog(null,"Vamos estudar pessoal !!!","Dica do Dia",JOptionPane.WARNING_MESSAGE);ConfirmDialogExibe uma mensagem e obtém uma confirmação(YES/NO, OK/CANCEL)Conjuntos de botões de opção (optionType):JOptionPane.DEFAULT_OPTIONJOptionPane.YES_NO_OPTIONJOptionPane.YES_NO_CANCEL_OPTIONJOptionPane.OK_CANCEL_OPTIONExemplo de ConfirmDialogint resp = JOptionPane.showConfirmDialog(null,"Vamos estudar?","Escolha uma opção",JOptionPane.YES_NO_OPTION );InputDialogExibe uma mensagem e obtém um valor de entrada dousuárioString nome = JOptionPane.showInputDialog(null,"Qual é o seu nome?","Identifique-se",JOptionPane.QUESTION_MESSAGE);OptionDialogExibe uma mensagem (ou objeto) eobtém uma opção escolhida pelousuárioO número de botões e seus textos sãoconfiguráveisA opção default é configurável
  7. 7. 7Exemplo de OptionDialogObject[] opcoes = {"Sim", "Não", "Mais Tarde","Amanhã", "Sei lá!"};int resp1 = JOptionPane.showOptionDialog(null,"Vamos Estudar?","Escolha uma opção",JOptionPane.DEFAULT_OPTION,JOptionPane.QUESTION_MESSAGE,null,opcoes,opcoes[0]);Painel de Conteúdoimport java.awt.Container;import javax.swing.JFrame;public class MeuPainelConteudo {JFrame quadro;Container c;public MeuPainelConteudo(){quadro = new JFrame();quadro.setSize(200,200);// Painel de conteúdoc = quadro.getContentPane();quadro.setVisible(true);}}JLabelUtilizado para colocar texto e Imagemem uma TelaJLabelpublic class CriandoLabels {private JLabel titulo1;private JFrame quadro;private Container c;public CriandoLabels(){quadro = new JFrame("Criando Labels");quadro.setSize(300, 200);// recebendo um Containerc = quadro.getContentPane();c.setLayout(new FlowLayout());c.setBackground(Color.YELLOW);// Criando os Labelstitulo1 = new JLabel("Meu Primeiro Label");c.add(titulo1);quadro.setVisible(true);}public static void main (String args[]){CriandoLabels rotulos = new CriandoLabels();}}JLabel// Criando os Labels configurando com o outro formatotitulo2 = new JLabel("Meu Label em Negrito");titulo2.setFont(new Font ("Chiller", Font.BOLD ,20));c.add(titulo2);JLabeltitulo3 = new JLabel("Meu label vermelho");titulo3.setOpaque(true);titulo3.setBackground(Color.red);titulo3.setToolTipText("Isso é um label com o background vermelho...");c.add(titulo3);
  8. 8. 8JLabeljava.net.URL imgURL = CriandoLabels.class.getResource("duke-guitar.png");ImageIcon imagem = new ImageIcon(imgURL, "Duke muito feliz");titulo4 = new JLabel("SOu o DuKe",imagem, JLabel.CENTER);c.add(titulo4);JTextField// Criando um JTextFieldJTextField texto1 = new JTextField(10);c.add(texto1);// Criando um JTextFieldJTextField texto2 = new JTextField("Sou o texto 2");c.add(texto2);// Criando um JTextFieldJTextField texto3 = new JTextField("Sou o texto 2", 20);c.add(texto3);JTextArea// Criando Area de TextosJTextArea areaTexto = new JTextArea(5,20);c.add(areaTexto);JTextArea com JScrollPane// Criando Area de TextosJTextArea areaTexto = new JTextArea(5,20);JScrollPane scrollPane = new JScrollPane(areaTexto);scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);c.add(scrollPane);JRadioButton// Criando os Radio ButtonJRadioButton botaoF = new JRadioButton("Feminino");c.add(botaoF);JRadioButton botaoM = new JRadioButton("Masculino");c.add(botaoM);// Agrupar os BotoesButtonGroup botoes = new ButtonGroup();botoes.add(botaoF);botoes.add(botaoM);JPanepublic class CriandoPane extends JFrame {public CriandoPane(){super("Criando Pane");this.setSize(300, 300);Container c = this.getContentPane();c.setLayout(new FlowLayout());JPanel painelAzul = new JPanel();painelAzul.setPreferredSize(new Dimension(300,100));painelAzul.setBackground(Color.BLUE );c.add(painelAzul);...
  9. 9. 9JPaneJPanel painelVermelho = new JPanel();painelVermelho.setPreferredSize(new Dimension(300,100));painelVermelho.setBackground(Color.RED );// Criando uma BordaBorder borda = BorderFactory.createLineBorder(Color.YELLOW);TitledBorder bordaComTitulo = BorderFactory.createTitledBorder(borda,"Meu Painel");painelVermelho.setBorder(bordaComTitulo);c.add(painelVermelho);this.setVisible(true);}public static void main(String args[]){CriandoPane programa = new CriandoPane();}}

×