Академический Документы
Профессиональный Документы
Культура Документы
A Classe JFrame
a base sobre a qual sero desenvolvidas as interfaces visuais de usurio (GUI). import javax.swing.*; Exemplo 8_1: public class Exemplo8_1 extends JFrame
{ Exemplo8_1() { setTitle("Descobrindo Posio x,y, largura e altura do Frame JFrame"); setBounds(200,150,400,300); setVisible(true); } public static void main(String arg[]) { new Exemplo8_1(); } }
4
A Classe JFrame
Exemplo8_2 A classe Color pertence ao pacote java.awt, o qual importado no incio do programa. A modificao da cor de fundo em um JFrame deve ser feita sobre o painel de contedos e permite ento que seja aplicado o mtodo, conforme segue: getContentPane ( ).setBackground(Color.orange) A Classe que instancia o Exemplo8_2 herda a classe Exemplo8_1, e consequentemente, a classe JFrame. Deseja-se no entanto que esta classe seja encarada como uma superclasse. Para isto foi includa a instruo: super ( );
5
A Classe NFrame:
Com algumas modificaes na classe Exemplo8_4 criamos a classe NFrame, ou seja:
A Classe NFrame:
import javax.swing.*; import java.awt.*; public class NFrame extends JFrame { public NFrame() { setLocation(50,100); setTitle("Este NFrame ( um JFrame personalizado )"); setSize(600,450); setUndecorated(true); getRootPane().setWindowDecorationStyle(JRootPane.FRAME); getRootPane().setBorder(BorderFactory.createLineBorder(Color.black,3)) ; setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } public static void main(String arg[]) { new NFrame(); } }
10
A Classe JLabel
Trata-se de um objeto que uma caixa dentro da qual uma String representativa de uma mensagem exibida. O mtodo setText define a mensagem que ser exibida pelo label, ou seja: setText ( Este um rtulo \JLabel\ ) O mtodo setToolTipText est ligado a um evento do mouse. Quando est sobre a rea do objeto Label, ele dispara a apresentao de uma pequena caixa contendo a mensagem (dica) digitada. Sua implementao feita da forma: setToolTipText( Aqui voc escreve uma rpida dica ) Para posicionamento do objeto e dimensionamento pode-se usar os mtodos setSize em conjunto com setLocation ou o mtodo setBounds.
11
A Classe JLabel
Exemplo8_5
JLabel L1 = new JLabel(); this.L1 = L1; L1.setText("Este um rtulo \"JLabel\""); L1.setSize(200,15); L1.setFont(F); L1.setLocation(105,5); L1.setToolTipText("Aqui voce escreve uma rapida dica"); L1.setForeground(Color.blue);
12
A Classe JTextField
Trata-se de uma caixa que permite a incluso de um texto de apenas uma linha (via digitao do usurio). Exemplo8_6:
13
A Classe JTextField
Os mtodos principais dessa classe so: setSize(int Width,int Height) define a largura e altura do texto. setLocation(int x,int y) define as coordenadas x e y da posio do objeto na tela. setBounds(int x,int y, int Width,int Height) substitui os mtodos anteriores setText(String mensagem) admite uma mensagem digitada pelo programador como um valor inicial ou como uma informao. setFont(new Font (...)) permite que seja alterada a fonte com a qual ser exibida a mensagem dentro da caixa. setForeground(Color.red) admite alterar a cor do primeiro plano (cor da fonte). setBackground(Color.yellow) permite alterar a cor de fundo da caixa de texto. getText( ) permite a captura do texto digitado pelo usurio.
14
A Classe JPasswordField
uma classe derivada de JTextField; Serve para introduo de campos de senha no computador; Segue os mesmos mtodos de sua superclasse (JTextField), apenas acrescenta como um artifcio opcional o mtodo: setEchoChar( x ); Exemplo8_6:
15
16
(Senha Errada) Apresenta informao na Caixa de Dilogos Aps 3 tentativas erradas apresenta informao de sada do sistema
17
A Classe JTextArea
Tambm derivada de JTextField; Cria uma rea que pode ser inserido um texto. Possui os seguintes mtodos: JTextArea( ) cria um objeto rea de texto vazia e sem nenhum atributo predefinido. JTextArea( Document doc ) cria uma rea de texto com o documento especificado anexado a ela; JTextArea( int linhas, int colunas ) cria uma rea de texto com o nmero de linhas e colunas especificado; JTextArea( String texto ) cria uma rea de texto com o texto definido por ela; JTextArea( Document doc, int linhas, int colunas ) cria uma rea de texto com o texto especificado pelo programa e com o nmero de linhas e colunas dado.
18
A Classe JTextArea
Exemplo8_9
19
A Classe JButton
Responsvel pela criao de botes no swing; Admite muitos mtodos que produzem variaes em torno da aparncia de um boto. Exemplo8_10;
20
21
22
23
25
26
try { Leitura normal dos dados, verificao da distncia percorrida, clculo dos dados e apresentao dos resultados } catch(NumberFormatException ex) { JOptionPane.showMessageDialog(null,"Digite apenas nmeros !","Erro !", 0); }
27
A classe JPanel
um container dentro do qual pode ser aplicado outros objetos, inclusive outro JPanel. A instncia deste objeto deve ser feita por: JPanel P1 = new JPanel( ); Esta classe admite muitos mtodos, sendo os principais: P1.setBounds(x,y,Width,Height) P1.setSize(Width,Height) P1.setLocation(x,y) P1.setBackground(Color.blue) P1.setBorders(Borderfactory.createLineBorder(Color.black,3) ) P1.setLayout( ) P1.setVisible(true)
28
A classe JPanel
O construtor JLabel admite um parmetro que um objeto da classe ImageIcon e permite exibir uma imagem dentro de um rtulo. Sua implementao feita por meio de: ImageIcon Im = new ImageIcon( C:/Imagens/Bauru.gif ); Importante: As dimenses de JLabel devem ser exatamente as mesmas da imagem que vai surgir dentro dele. Recomenda-se tambm evitar arquivos de imagens muito grandes.
29
Este exemplo trata de um sistema em que a superclasse NFrame vai recebendo novos objetos e novas funes a medida que a funcionalidade vai sendo implementada. A classe Exemplo8_11( ) a classe geradora de todo o sistema e consiste na criao de seis painis do tipo JPanel e o posicionamento de cada um deles dentro de NFrame. Para teste desta classe necessrio a implementao do mtodo de execuo, ou seja: public static void main (String arg[ ]) { New Exemplo8_11( ).setVisible(true); } O resultado da implementao desta classe apresentado a seguir.
30
31
Na classe Exemplo8_12 adiciona-se os labels a cada um dos paineis contendo o ttulo de cada painel. Seu resultado fica:
32
Exemplo8_13( ) So adicionados os botes correspondentes em cada painel, bem como suas dicas para auxiliar as vendas.
33
Exemplo8_14( ) So adicionados os textos aos Labels representativos de cada painel. Tambm so criados novos labels contendo imagens dos produtos que, inicialmente no aparecem nos paineis pois so configuradas como no-visveis.
34
Exemplo8_15( ) So adicionados os eventos aos Botes onde, ao serem clicados fazem aparecer a imagem do produto com seu contedo. Quando se clica outro boto a imagem apresentada desaparece e surge uma nova imagem correspondente ao novo boto.
35
A Classe JTabbedPane
Trata-se de um painel com abas que imita um tipo de fichrio. um objeto derivado do AWT e de JComponent do Swing. O mtodo construtor admite trs formas de instnciamento: JTabbedPane( ) cria um painel vazio e com as abas no topo do fichrio; JTabbedPane(int tabPlacement) O argumento definir a posio das abas:
JTabbedPane.TOP ( default ) JTabbedPane.BOTTON JTabbedPane.LEFT JTabbedPane.RIGHT
36
A Classe JTabbedPane
JTabbedPane(int tabPlacement int tabLayoutPolicy) Cria um painel vazio em que as abas estaro apresentadas todas permanentemente ou estaro unidas por um painel Scroll em que vo surgindo medida que o usurio rola o painel. definido pelas constantes:
JTabbedPane.SCROLL_TAB_LAYOUT JTabbedPane.WRAP_TAB_LAYOUT
No Exemplo8_16 o cardpio da lanchonete (Exemplo8_15) foi aproveitado para criar uma nova forma de apresentao:
37
A Classe JTabbedPane
38
A Classe JSplitPane
um painel dividido ao qual possvel acrescentar objetos, criando contexto correlatos (Exemplo8_17). No exemplo existem dois painis. O painel SP1 dividido no sentido vertical e que contm os painis P2 e P3.
SP1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,P3,P2); SP1.setDividerLocation(200); O outro painel SP dividido no sentido horizontal e contm o painel P1 e o outro objeto JSplitPane. SP = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,P1,SP1); SP.setDividerLocation(80);
39
A Classe JSplitPane
SP1.setDividerLocation(200);
SP.setDividerLocation(80);
40
A Classe JSlider
Implementa uma rgua com um cursor sob a forma de um boto deslizante. Trata-se de um controle deslizante. O construtor possui as seguintes sobrecargas: public JSlider( ) cria um controle deslizante com escala entre 0 e 100 e assume o valor inicial 50. public JSlider( int Orientao ) cria um controle deslizante com escala entre 0 e 100 e valor inicial 50 com a orientao definida pela constante:
JSlider.VERTICAL JSlider.HORIZONTAL
public JSlider( int min , int mx ) cria um controle deslizante com escala entre min e mx e valor inicial mdio.
41
A Classe JSlider
public JSlider( int min , int mx, int valor ) cria um controle deslizante com escala entre min e mx e valor inicial = valor. public JSlider( int Orientao, int min , int mx, int valor ) cria um controle deslizante conforme orientao definida e com escala entre min e mx e valor inicial igual ao estabelecido pelo parmetro valor. Exemplo8_18 Faz a implementao de um painel para estudo das cores segundo valores de R (red), G(green) e B (blue).
Foram implementadas trs rguas com variaes entre 0 e 255 e o resultado pode ser visualizado no painel. Os mtodos setMinorTracking( int menor ) e setMajorTracking(int major) definem os traos da escala de cores. Os mtodos setPaintTicks (true) definem a visualizao destes traos e o mtodo setPaintLabel( true ) define a apresentao dos valores da escala.
42
A Classe JSlider
Foi empregada a interface ChangeListener que contm um nico mtodo stateChanged( ) estado alterado, cujo parmetro ChangeEvent. A variao da escala capturada pelo mtodo getValue( ) do objeto JSlider, correspondente por:
P1.setBackground( newColor(JS1.getValue( ).JS2.getValue( ).JS3.getValue(c)));
43
A Classe JScrollPane
um painel de rolagem, permitindo assim, a insero de um objeto maior que suas dimenses. O mtodo construtor desta classe admite quatro opes: JScrollPane( ) cria um painel vazio em que ambos ScrollBars vo surgir quando forem necessrios. JScrollPane( component img ) cria um painel contendo uma imagem. Os ScrollBars vo surgir quando forem necessrios.
44
A Classe JScrollPane
JScrollPane(component img, int vsbPolicy, hsbPolicy ) cria um painel com o objeto indicado e com as barras de rolagem nas posies indicadas pelas constantes:
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED JScrollPane.VERTICAL_SCROLLBAR_ALWAYS JScrollPane.VERTICAL_SCROLLBAR_NEVER JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS JScrollPane.HORIZONTAL_SCROLLBAR_NEVER
JScrollPane(int vsbPolicy, hsbPolicy ) cria um painel com as barras de rolagem nas posies indicadas pelas constantes definidas anteriormente.
45
A Classe JScrollPane
Exemplo8_19
A Classe JScrollBar
O Painel JScrollPane trabalha com dois JScrollBar associados. A barra de rolagem JScrollBar pode ser chamada em um programa para produzir algum efeito desejado, independente do painel, resultando um efeito semelhante ao do objeto JSlider. Exemplo8_20: Emprega-se dois elementos JScrollBar para mover um cone dentro de um espao na tela. Nesta classe implementada a interface ouvinte de eventos adjustmentListener. O mtodo associado: adjustmentValueChanged(AdjustmentEvent e) executa a movimentao do cone para as novas posies desejadas (x,y).
47
A Classe JScrollBar
Exemplo8_20:
48
A Classe JDialog
usada para produzir mensagens de dilogo com o usurio diante das possveis interaes deste com o programa. A tela gerada por JDialog no pode ser iconizada nem minimizada por padro.
49
A Classe JOptionPane
uma classe que contm diversos painis de aviso para o usurio do programa. Os painis j obedecem um estilo padronizado. So quatro tipos possveis de painis JOptionPane. Suas chamadas obedecem a sintaxe: show.xxxxxxxxDialog( ); showConfirmDialog( ) solicita uma confirmao (boto YES) ou negao (boto NO) ou desistncia (boto CANCEL) do usurio. showInputDialog( ) entrada de informao. showMessageDialog( ) apresenta uma mensagem estabelecida pelo programador, proveniente de uma ao. showOptionDialog( ) trata-se de um painel com muitas alternativas. Trata-se de uma juno de todos os painis anteriores.
50
A Classe JOptionPane
A Classe JOptionPane usa quatro tipos de cones que podem ser substitudos por smbolos personalizados ou ento serem chamados por meio de uma constante: question chamado pela constante 3 ou ento: JOptionPane.QUESTION_MESSAGE information chamado pela constante 1 ou ento: JOptionPane.INFORMATION_MESSAGE warning chamado pela constante 2 ou ento: JOptionPane.WARNING_MESSAGE error chamado pela constante 0 ou ento: JOptionPane.ERROR_MESSAGE
51
A Classe JOptionPane
Os cones sero chamados dentro do objeto MessageDialog, definido pelo mtodo: JOptionPane.showMessageDialog( null, Aqui vai a sua mensagem , Ttulo, -1 ); A constante -1 define um MessageDialog sem cone; Para uma mensagem de erro utiliza-se a constante 0 ; Para uma mensagem de informao utiliza-se a constante 1 ; Para uma pergunta utiliza-se a constante 3 ; Para uma mensagem de alerta utiliza-se a constante 2 ;
52
A Classe JOptionPane
Exemplo8_22
53
A Classe JOptionPane
Exemplo8_23
54