Vous êtes sur la page 1sur 31

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

UTILIZANDO A INTERFACE GRFICA GUI NO NETBEANS FAZENDO PROJETOS RPIDOS, DIGITANDO POUCO CDIGO JAVA

ANTES DE MAIS NADA, CRIA-SE UMA PASTA PARA CADA PROJETO EM UM LOCAL (PEN DRIVE, REA DE TRABALHO, ENFIM...)

Exemplo 1: Criando um projeto:

Adio

A primeira etapa criar um projeto do IDE para o aplicativo que vamos desenvolver. Chamaremos nosso projeto de AdicaoNumero. 1. Escolha Arquivo > Novo projeto. Como alternativa, voc pode clicar no cone Novo projeto na barra de ferramentas do IDE. 2. No painel Categorias, selecione o n Java. No painel Projetos, escolha Aplicativo Java. Clique em Prximo. 3. Digite Adicao no campo Nome do projeto e escolha um caminho, ou seja, em seu diretrio base como a localizao do projeto, em outras palavra um lugar onde voc vai grav-lo. 4. No apague nenhum cdigo do formulrio, o cdigo ser criado automaticamente. 5. Verifique se a caixa de verificao Definir como projeto principal est selecionada. 6. Desmarque a caixa de verificao Criar classe principal caso esteja selecionada. 7. Clique em Terminar. Ok o projeto Adio foi iniciado

Exerccio 2: Construindo o front end Pacote GUIs


Para prosseguir com a construo da nossa interface, precisamos criar um continer Java no qual colocaremos os outros componentes requeridos da GUI. Nesta etapa criaremos um continer usando o componente JFrame. Colocaremos o continer em um novo pacote, que aparecer no n Pacotes de cdigos-fonte. Crie um continer JFrame 1. Na janela Projetos, clique com o boto direito do mouse no n Adicao e selecione Novo Arquivo > Formulrio GUI Swing >Formulrio JFrame.

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

2. Indique o nome da classe: NumeroAdicao. 3. Indique o pacote: Adicao. 4. Clique em Terminar. Percebe que: O IDE cria o formulrio JFrame e a classe NumeroAdicao no aplicativo Adicao, e abre o formulrio construtor de GUIs.

Adicionando componentes: Criando o front end


Agora ficou muito mais fcil! s selecionar o componente e arrast-lo para dentro do JFrame: Nosso NetBeans est em portugus-br, logo: JFrame = Painel JLabel = Rtulo JTextFields = Campo de texto JButtons = OK Button Usaremos a paleta para preencher o front end do nosso aplicativo com um JPanel. Adicionaremos trs JLabels, trs JTextFields e trs JButtons. Depois de terminar de arrastar e posicionar os componentes mencionados anteriormente, o JFrame deve ter uma aparncia como a da captura de tela seguinte, fcil redimension-los, deixe-os bem bonitinhos.

Obs. Se voc no vir a janela Paleta no canto direito superior do IDE, escolha Janelas > Paleta.

1. Comece selecionando um JPanel na paleta e solte-o no JFrame.

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

2. Enquanto o JPanel estiver realado, v para a janela Propriedades e clique no boto de reticncias (...) ao lado da borda para escolher um estilo de borda. 3. Na caixa de dilogo Borda, selecione TitledBorder na lista, e digite Adio de nmeros no campo Ttulo. Clique em OK para salvar as alteraes de e saia da caixa de dilogo. 4. Voc agora deve ver um JFrame intitulado vazio que diz Adio de nmero como na captura de tela. Observe a captura de tela e os trs JLabels, trs JTextFields e trs JButtons como voc v acima.

Rotulando os componentes jLabels:


Nesta etapa, vamos renomear o texto de exibio dos componentes que acabamos de adicionar ao JFrame. 1. Clique duas vezes em jLabel1 e altere a propriedade do texto para Primeiro nmero: 2. Clique duas vezes em jLabel2 e altere o texto para Segundo nmero: 3. Clique duas vezes em jLabel3 e altere o texto para Resultado: 4. Exclua o texto da amostra de jTextField1. Voc pode tornar o texto de exibio editvel, clicando no campo de texto, pausando e clicando no campo de texto novamente. Talvez voc tenha que redimensionar o jTextField1 para seu tamanho original. Repita esta etapa para jTextField2 e jTextField3. 5. Renomeie o texto de exibio de jButton1 para Limpar. (Voc pode editar o texto de um boto, clicando com o boto direito do mouse no boto e escolhendo Editar texto. Ou voc pode clicar no boto, pausar e clicar novamente.) 6. Renomeie o texto de exibio de jButton2 para Adicionar. 7. Renomeie o texto de exibio de jButton3 para Sair. Sua GUI finalizada agora deve ser semelhante captura de tela seguinte:

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

Adicionando funcionalidade nos botes:

(Programao em Java)

Neste exerccio, vamos dar funcionalidade aos botes Adicionar, Limpar e Sair. As caixas jTextField1 e jTextField2 sero usadas para entrada do usurio e jTextField3 para a sada do programa - o que estamos criando uma calculadora muito simples. Vamos comear.

Programando o boto Sair:


Para dar funo aos botes, temos que atribuir um manipulador de eventos a cada um deles para responder aos eventos. Em nosso caso, queremos saber quando o boto pressionado, por clique do mouse ou via teclado. Portanto, usaremos ActionListener respondendo a ActionEvent. 1. Duplo clique no boto Sair. Ele automaticamente indicar onde voc deve escrever o cdigo 2. Escreva apenas: System.exit(0); para sair do programa, ficar com esta aparncia: 1. private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { 2. //TODO: Add your handling code here: - Traduzindo: Adicione todo o seu cdigo aqui: } 3. 4. private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { System.exit(0); }

Programando o boto Limpar:


1. Agora faremos o boto Limpar apagar todo o texto dos jTextFields. D um duplo clique no boto Limpar. Digite o cdigo no local similar indicado anteriormente: jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); O cdigo acima altera o texto em todos os nossos trs JTextFields para nada, na essncia, ele est sobrescrevendo o texto existente por um espao em branco.

Programando o boto Adicionar:


O boto Adicionar realizar trs aes. 1. Ele vai aceitar a entrada do usurio de jTextField1 e jTextField2 e converter a entrada de um tipo String para uma flutuao. 2. Em seguida, ele far a adio dos dois nmeros e, finalmente, 3. converter a soma para um tipo String e o colocar em jTextField3.

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

Vamos comear! 1. D duplo clique no boto Adicionar e digite o cdigo a seguir, a partir da linha 3 lgico. float num1, num2, resultado; // vamos converter texto para nmero real (float). num1 = Float.parseFloat(jTextField1.getText()); num2 = Float.parseFloat(jTextField2.getText()); // Agora vamos adicionar colocando na varivel resultado resultado = num1+num2; // Vamos colocar o resultado na caixa de texto // para isso temos que converter float para string. jTextField3.setText(String.valueOf(resultado));

Agora nosso programa est completo e podemos constru-lo e execut-lo para v-lo em ao.

Executando o programa
Para executar o programa no IDE: 1. Escolha Executar > Executar projeto principal 2. Eu costumo, primeiramente COMPILAR <F9> e depois EXECUTAR <SHIFT+F6>

De agora em diante vamos utilizar o Netbeans para fazermos as interfaces grficas com maior rapidez e tornar o trabalho mais agradvel.

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

Programa piscina 01
1. Cria-se uma pasta com o nome: Projeto Piscina; 2. Cria-se um novo projeto com o nome Piscina dentro da Pasta: Projeto Piscina; 3. No canto superior esquerdo do NetBeans, em cima do nome do projeto Piscina, clique com o boto direito para ADICIONAR UM NOVO JFRAME; 4. Salve este JFRAME com um nome de classe diferente de Piscina, por exemplo: Pisc; 5. Coloque um Painel e os componentes abaixo: 6. Componentes utilizados: 1 Painel, 4 jLabels ou Rtulos , 4 jTextFields ou Campos de Textos, 3 OK-Buttons ou Botes; 7. Clique com o boto direito em cima de cada componente em EDITAR TEXTO para os rtulos abaixo:

8.

Com o layout, acima, pronto, basta apenas programar os botes:

9. Duplo clique no boto Sair: // TODO add your handling code here: System.exit(0); 10. Duplo clique no boto Limpar: // TODO add your handling code here: jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); 11. Duplo clique no boto Calcular: // TODO add your handling code here: double larg, comp, alt, a1,a2,a3,atotal, m2, qtcxs; larg = Float.parseFloat(jTextField1.getText()); comp = Float.parseFloat(jTextField2.getText()); alt = Float.parseFloat(jTextField3.getText()); m2 = Float.parseFloat(jTextField4.getText()); a1 = larg*alt*2; a2 = comp*alt*2; a3 = larg*comp; atotal = a1+a2+a3; qtcxs = (atotal/m2)*1.1;

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

JOptionPane.showMessageDialog(null,"Area total = "+atotal+" m"+"\nQuantidade de caixas = "+qtcxs);

12. Nunca esquea que em cada etapa, acima, clique no cone disquetes duplos para SALVAR 13. No menu escolha: EXECUTAR, desce e vai em: COMPILAR ARQUIVO F9 e depois clique em: EXECUTAR ARQUIVO SHIFT+F6

Ou seja a rea total desta piscina de 79,0 m e dever ser comprada cerca de 49 caixas do azulejos escolhido no depsito pelo comprador.

Programa Mdia Escolar (Agora vou fazer mais rpido,


busque os detalhes no outro de cima)
1. 2. 3. 4. Crie uma pasta: Projeto Media Nome do projeto: Media Nome da classe (novo JFrame): Med Faa o layout abaixo:

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

5. Boto sair: // TODO add your handling code here: System.exit(0); 6. Boto Limpar: // TODO add your handling code here: jTextField1.setText(" "); jTextField2.setText(" "); jTextField3.setText(" "); 7. Boto Calcular: // TODO add your handling code here: double nota1, nota2, media; nota1 = Float.parseFloat(jTextField2.getText()); nota2 = Float.parseFloat(jTextField3.getText()); media = (nota1 + nota2)/2; JOptionPane.showMessageDialog(null,"Media = "+media); 8. Compilar o com <F9> e somente depois executar com <SHIFT+F6>

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

EXERCCIO: FAZENDO UMA INTERFACE GRFICA PARA CADASTRO DE CLIENTES


2 EXEMPLO: FORMULRIO PARA CADASTRO DE CLIENTES Neste segundo exerccio vamos fazer um cadastro de clientes com o seguinte layout:

Dentro do JFrame principal (Formulrio de trabalho) vemos:


a) 3 Paineis com ttulo (TitledBorder) devidamente alinhados; b) No primeiro Painel vemos: 5 Rtulos (Labels): Nome, Endereo, Cidade, CEP e UF; 3 Campos de Texto (jTextFields); 1 Campo Formatvel (jFormattedTextField); 1 Caixa de Combinao (jComboBox); c) No segundo Painel vemos: 4 Rtulos; 2 Campos de textos Formatveis; 1 Campo de texto, 3 Botes de Opes (RadioButtons): 3.1 Adicione um componente GRUPO DE BOTES (ele invisvel) para agrupar cada boto de opo; 3.2 Clique em cada boto de opo (RadioButton) para ativ-lo, em seguida vai na propriedade deste e escolha a opo BUTTONGROUP e selecione a opo: BUTTONGROUP1, repita isso para cada boto de opo; d) No terceiro Painel vemos 3 botes (jButtons): Confirmar, Limpar e Fechar

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

10

Preparando os componentes utilizando o Painel de Propriedades


1. Digitao dos Rtulos (Labels), basta dar duplo clique e quando ficar azul digite o rtulo; 2. Nos Campos, para retirar os nomes deles, d um clique para selecion-lo e pause 2 a 3 segundos e d outro clique para ativ-lo, quando o texto ficar azul apague; 3. Campo Formatvel (jFormattedTextField): CEP escolhe a propriedade FormattedFactory e escolha Mscara e Personalizado, formate assim: #####-### para o CEP. Para telefone faa o mesmo fazendo o formato: (##)####-#### 4. Na Caixa de combinao, escolha a propriedade Model e altere os itens: tem1 para SP, tem2 para MG, enfim... 5. Para digitar no botes, faa o mesmo: d um clique para selecion-lo espere 2 a 3 segundos e d outro clique para ativ-lo e digitar 6. Mude a cor da fonte com Foreground e mude a cor de fundo com BackGround, mude a fonte na propriedade font....

Codificao dos eventos:


1. Comeando pelo boto Fechar, d duplo clique no boto e digite: // TODO add your handling code here: = Digite todo o seu cdigo aqui: System.exit(0); 2. D duplo clique no boto Limpar e digite o cdigo: jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jRadioButton1.setSelected(false); jRadioButton2.setSelected(false); jRadioButton3.setSelected(false); jRadioButton4.setSelected(false); jComboBox1.setSelectedIndex(0); 3. O boto confirmar, ficar para codificar depois ou fazemos um arquivo ou fazemos um banco de dados. Assim terminamos mais um exemplo.

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

11

Mais Exemplos feitos em classe: Converso de dlar para Real, pela cotao do dia
Componentes: Um JFrame, com 1 Painel, 3 Rtulos (Labels), 3 Campos de texto, 3 OK Buttons

Boto Calcular:
float vlr_dolar, vlr_real,cotacao; vlr_dolar=Float.parseFloat(jTextField1.getText()); cotacao=Float.parseFloat(jTextField2.getText()); vlr_real=vlr_dolar*cotacao; jTextField3.setText(String.valueOf(vlr_real));

Boto Limpar:

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

12

jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText("");

Boto Sair:
System.exit(0);

Peso Ideal e IMC


Componentes 1 jFrame, 2 Paineis, no primeiro painel: 4 Rtulos (Labels), 3 Campos de texto, 2 botes de opo (RadioButtons), 3 OK Button1s. No segundo painel: 6 Rtulos (Labels) dispostos abaixo: No esquea de ativar as propriedades do botes de opo 9RadioButtons): 1. Adicione um componente GRUPO DE BOTES (ele invisvel) para agrupar cada boto de opo; 2. Clique em cada boto de opo (RadioButton) para ativ-lo, em seguida vai na propriedade deste e escolha a opo BUTTONGROUP e selecione a opo: BUTTONGROUP1, repita isso para cada boto de opo;

Boto Calcular:
double pi=0, altura, pa, imc; altura = Float.parseFloat(jTextField2.getText()); pa = Float.parseFloat(jTextField3.getText()); imc = pa/(altura*altura); jLabel8.setText(String.valueOf(imc)); if (jRadioButton1.isSelected()) { jRadioButton2.setSelected(false); pi = (72.7 * altura) - 62; } else if (jRadioButton2.isSelected()) { jRadioButton1.setSelected(false); pi = ((62.1 * altura) - 48.7); } jLabel9.setText(String.valueOf(pi)); if (imc <= 18.5) jLabel10.setText("Voce esta abaixo do peso"); else if (imc <= 24.9) jLabel10.setText("Parabns, voc est em seu peso normal"); else if (imc <= 29.9)

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

13

jLabel10.setText("Voc est acima do peso (Sobrepeso)"); else if (imc <= 34.9) jLabel10.setText("Obesidade grau I"); else if (imc <= 39.9) jLabel10.setText("Obesidade grau II"); else jLabel10.setText("Obesidade grau III - Grave!");

Boto Limpar:
jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jLabel8.setText(""); jLabel9.setText(""); jLabel10.setText(""); jRadioButton1.setSelected(false); jRadioButton2.setSelected(false);

Sair:
System.exit(0);

FATORIAL DE UM NMERO INTEIRO


Fatorial de um numero selecionado no ComboBox (Caixa de Combinao)

Boto Calcular (nico boto programado):


double fat=1; int i,n; Object s = jComboBox1.getSelectedItem(); n = Integer.parseInt(""+s); for (i=1; i<=n;i++)

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

14

{ fat=fat*i; } JOptionPane.showMessageDialog(null,"Fatorial de "+n+ " = " +fat, "Fatorial",JOptionPane.INFORMATION_MESSAGE);

Programa Salrio 01:


Componentes: 1 JFrame, 1 painel, 4 Rtulos (labels), 4 campos de texto, 4 botes de opo e 3 OK Buttons. Para os botes de opo: 1. Adicione um componente GRUPO DE BOTES (ele invisvel) para agrupar cada boto de opo; 2. Clique em cada boto de opo (RadioButton) para ativ-lo, em seguida vai na propriedade deste e escolha a opo BUTTONGROUP e selecione a opo: BUTTONGROUP1, repita isso para cada boto de opo;

Boto Calcular:
double sh, ht, salbruto, perc,desc, saliq, abono; int cod; String nome; cod = Integer.parseInt(jTextField1.getText()); nome = jTextField2.getText(); sh = Float.parseFloat(jTextField3.getText()); ht = Float.parseFloat(jTextField4.getText()); if ((jRadioButton2.isSelected()) || (jRadioButton3.isSelected())) abono = 200; else abono = 100; salbruto = (sh*ht)+abono; if (salbruto <= 1000) perc = 0f; else if (salbruto <= 4000) perc = 0.1f; else if (salbruto <= 6000) perc = 0.15f;

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

15

else perc = 0.2f; desc = salbruto * perc; saliq = salbruto - desc; JOptionPane.showMessageDialog(null,"Cdigo = "+cod+"\nNome = "+nome+"\nSalrio Bruto = R$ "+salbruto+"\nDesconto = R$ "+desc+"\nSalrio Lquido = R$ "+saliq);

Limpar:
jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jRadioButton1.setSelected(false); jRadioButton2.setSelected(false); jRadioButton3.setSelected(false); jRadioButton4.setSelected(false);

Sair:
System.exit(0);

Mltiplos Painis
4. Pega-se um painel tabulado e sobre este coloca-se outros painis (no tabulado e sim painel comum); Neste caso coloquei 3 Paineis comuns sobre o Painel tabulado.

Programa: Dia, Ms e Ano


5. Ao rodar deve aparecer no jLabels o Dia, Ms e Ano. Utilizamos Controles Giratrios (Controle Giratrio = jSpinner), para o dia, ms e ano com a hora do sistema. Ao selecion-los e clicarmos no boto exibir deve aparecer no jlabels. Propriedade: Model (Spinner Model) e escolha data.

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

16

Boto Exibir:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Object a = jSpinner1.getNextValue(); jLabel2.setText(String.valueOf(a)); }

Programa Salrio 02
Retomemos o exemplo 4 (Salrio) acima e colocamos apenas 2 JRadioButtons:
1. Adicione um componente GRUPO DE BOTES (ele invisvel) para agrupar cada boto de opo; 2. Clique em cada boto de opo (RadioButton) para ativ-lo, em seguida vai na propriedade deste e escolha a opo BUTTONGROUP e selecione a opo: BUTTONGROUP1, repita isso para cada boto de opo;

Material didtico Java GUI do NetBeans Criando interfaces grficas rpidas VEJA O RESULTADO A SEGUIR: NOTE BEM QUE O RESULTADO EST EM MOEDA REAL BRASILEIRO:

Prof. Carlos Alberto

17

OBS. NO PODEMOS ESQUECER DE INCLUIR L NO TOPO DO CDIGO O SEGUINTE:

import javax.swing.JOptionPane; import java.text.NumberFormat; Boto Calcular:


O novo cdigo do boto calcular ficou assim: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: double sh, ht, salbruto, perc,desc, saliq, abono=0; int cod; String nome; cod = Integer.parseInt(jTextField1.getText()); nome = jTextField2.getText(); sh = Float.parseFloat(jTextField3.getText()); ht = Float.parseFloat(jTextField4.getText()); //Se depto=1 conceder 100 seno conceder 400 if (jRadioButton1.isSelected()) { abono = 100; } else if (jRadioButton2.isSelected()) { abono = 400; } // Calculo do salrio lquido a receber salbruto = (sh*ht)+abono; if (salbruto <= 1000) perc = 0f; else if (salbruto <= 4000) perc = 0.1f; else if (salbruto <= 6000) perc = 0.15f; else perc = 0.2f; desc = salbruto * perc; saliq = salbruto - desc; // FORMATAO PARA MOEDA REAL BRASILEIRO

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

18

String salbruto1=NumberFormat.getCurrencyInstance().format(salbruto); String desc1=NumberFormat.getCurrencyInstance().format(desc); String saliq1=NumberFormat.getCurrencyInstance().format(saliq); JOptionPane.showMessageDialog(null,"Cdigo = "+cod+"\nNome = "+nome+"\nSalrio Bruto = R$ "+salbruto1+"\nDesconto = R$ "+desc1+"\nSalrio Lquido = R$ "+saliq1);

Boto Limpar:
jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jRadioButton1.setSelected(false); jRadioButton2.setSelected(false);

Boto Sair:
System.exit(0);

Definies:

Formatao de nmeros

Esses exemplos abaixo podem serem testados no JCreator A classe NumberFormat, faz parte do pacote java.text e permite formatar nmeros conforme a localizao geogrfica em que voc se encontra, realizando a distino entre o sinal de ponto,milhar e de decimal, tambm identifica a posio do sinal do nmero e identifica o prefixo que indica a moeda em caso de valores monetrios. A Classe NumberFormat possui trs mtodos para formatar nmeros, valores monetrios e percentuais. Para fazer uso dela necessrio importa-la.

ex: import java.text.NumberFormat;


Os principais mtodos do NumberFormat so: getNumberInstance() Retorna a instncia de um objeto com base no formato da localidade padro. utilizado para numeros getCurrencyInstance() Usado para formatar moedas getIntegerInstance() Usado para formatar nmeros ignorando casas decimais getPercentInstance() Usado para formatar fraes pro exemplo 0,15 formatado e mostrado como 15% Exemplo: import java.text.NumberFormat; public class Formata {

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

19

public static void main(String[] args) {

System.out.println(NumberFormat.getCurrencyInstance().format(12345678.9 0)); // imprimir R$ 12.345.678,90 } } Agora um exemplo para uma situao em que se h muitos nmeros a serem formatados. import java.text.NumberFormat; public class Formata2 { public static void main(String[] args) { double n[]={523.34, 54344.23 ,95845.223 ,1084.895}; NumberFormat z = NumberFormat.getCurrencyInstance(); for (int a = 0; a < n.length; a++) { if(a != 0) System.out.print(", "); System.out.print(z.format(n[a])); } System.out.println(); /* Imprime: R$ 523,34, R$ 54.344,23, R$ 95.845,22, R$ 1.084,90 */ } } Ainda possvel criar uma formatao personlizada utilizando o objeto DecimalFormat. por exemplo: import java.text.DecimalFormat; public class Formata { public static void main(String[] args) { double valor = 2000.0; double vezes = 3.0; double prestacao = valor/vezes; DecimalFormat df = new DecimalFormat("0.##"); String dx = df.format(prestacao);

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

20

System.out.print(dx); } // sera impresso : 666,67 } Algumas strings de formatao que podem ser utilizadas com o Decimal Format
Marcara de formatao ,##0,00 Formato impresso 1,242.50 Descrio Separa grupo dos milhares com vrgulas, se nmero menor que um mostra zeros na frente. Nmeros negativos entre parnteses. mostra $ Se nmero entre -1 e 1 mostra zero na frente e no mostra zeros no final.

$,##0.00;($,##0.00) 0.#####

($1,535,50) 1244.5

importante lembrar que DecimalFormat no adequada para formatar notaes cientfica, tabelas com colunas de largura fixa e nem nmeros em formato hexadecimal ou octal.

PROGRAMA: SALRIO DE VENDEDORES


Nome do projeto: Comisso Nome do Jframe (classe): com Coloca-se: 1 Painel, 4 rtulos(labels), 4 Campos de texto (jTextFields), 3 OK Buttons (OLHE O LAYOUT A SEGUIR):

COLOCA-SE NO INCIO DO CDIGO:

import javax.swing.JOptionPane;

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

21

import java.text.NumberFormat;
DUPLO CLIQUE NO BOTO CALCULAR:
// DECLARAO DAS VARIVEIS double sal_fixo, comis, tot_vend, sal_bruto, perc, pe, desc, sal_liq; String nome = " "; int cod; // CONVERSO DE TIPO DE DADOS DOS CAMPOS DE TEXTOS JtextField.. cod = Integer.parseInt(jTextField1.getText()); nome = jTextField2.getText(); sal_fixo = Float.parseFloat(jTextField3.getText()); tot_vend = Float.parseFloat(jTextField4.getText()); // TABELA DE COMISSO if (tot_vend <= 1000) perc = 0; else if (tot_vend <= 4000) perc = 0.05; else if (tot_vend <= 8000) perc = 0.1; else perc = 0.15; comis = tot_vend * perc; sal_bruto = sal_fixo + comis; // TABELA DE INSS if (sal_bruto <= 800) pe = 0.06; else if (sal_bruto <= 1200) pe = 0.08; else pe = 0.09; desc = sal_bruto * pe; sal_liq = sal_bruto - desc; // FORMATAO PARA MOEDA REAL BRASILEIRO String comis1=NumberFormat.getCurrencyInstance().format(comis); String sal_bruto1=NumberFormat.getCurrencyInstance().format(sal_bruto); String desc1=NumberFormat.getCurrencyInstance().format(desc); String sal_liq1=NumberFormat.getCurrencyInstance().format(sal_liq); JOptionPane.showMessageDialog(null,"Cdigo = "+cod+"\nNome = "+nome+"\nComisso = "+comis1+"\nSalrio Bruto = "+sal_bruto1+"\nDesconto = "+desc1+"\nSalrio Lquido = "+sal_liq1);

SADA ESPERADA:

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

22

BOTO LIMPAR:
jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText("");

BOTO SAIR:
System.exit(0);

PROGRAMA: SALRIO DE VENDEDORES INCLUINDO BOTES DE OPO (DEPARTAMENTOS)


Alm dos: 4 Rtulos (Labels), 4 Campos de Textos (JTextFields), 3 Botes (Buttons) incluir tambm 3 Botes de Opes. ADICIONE O GRUPO DE BOTES (INVISVEL NO FORMULRIO) 1. Adicione um componente GRUPO DE BOTES (ele invisvel) para agrupar cada boto de opo; 2. Clique em cada boto de opo (RadioButton) para ativ-lo, em seguida vai na propriedade deste e escolha a opo BUTTONGROUP e selecione a opo: BUTTONGROUP1, repita isso para cada boto de opo; Calcular o ABONO: Se o Depto 1 for selecionado conceder abono de 200,00, seno se Depto 2 for selecionado conceder 400,00 de abono, seno conceder 600,00 de abono juntamente includo no salrio lquido receber (soma-os).

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

23

BOTO CALCULAR:
// DECLARAO DOS TIPOS DE VARIVEIS double sal_fixo, comis, tot_vend, sal_bruto, perc, pe, desc, sal_liq, abono; String nome = " "; int cod; cod = Integer.parseInt(jTextField1.getText()); nome = jTextField2.getText(); sal_fixo = Float.parseFloat(jTextField3.getText()); tot_vend = Float.parseFloat(jTextField4.getText()); // TABELA DE COMISSO if (tot_vend <= 1000) perc = 0; else if (tot_vend <= 4000) perc = 0.05; else if (tot_vend <= 8000) perc = 0.1; else perc = 0.15; comis = tot_vend * perc; sal_bruto = sal_fixo + comis; // TABELA DE INSS if (sal_bruto <= 800) pe = 0.06; else if (sal_bruto <= 1200) pe = 0.08; else pe = 0.09; desc = sal_bruto * pe; sal_liq = sal_bruto - desc; // CLCULO DO ABONO POR DEPARTAMENTO if (jRadioButton1.isSelected()) { abono = 100;

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

24

} else if (jRadioButton2.isSelected()) { abono = 400; } else { abono = 600; } // ADICIONA O ABONO AO SALRIO LQUIDO - ISENTO DE DESCONTOS DE INSS sal_liq = sal_liq + abono; // FORMATAO PARA MOEDA REAL BRASILEIRO String comis1=NumberFormat.getCurrencyInstance().format(comis); String sal_bruto1=NumberFormat.getCurrencyInstance().format(sal_bruto); String desc1=NumberFormat.getCurrencyInstance().format(desc); String sal_liq1=NumberFormat.getCurrencyInstance().format(sal_liq); JOptionPane.showMessageDialog(null,"Cdigo = "+cod+"\nNome = "+nome+"\nComisso = "+comis1+"\nSalrio Bruto = "+sal_bruto1+"\nDesconto = "+desc1+"\nSalrio Lquido = "+sal_liq1);

BOTO LIMPAR:
jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jRadioButton1.setSelected(false); jRadioButton2.setSelected(false); jRadioButton3.setSelected(false);

BOTO SAIR:
System.exit(0);

PROGRAMA A SEGUIR: SISTEMA DE LOCAO Uso de vrios jFrames (classes)


Nome Nome Nome Nome do do do do Projeto: Locadora 1 jFrame (classe): Principal 2 jFrame (classe): Clientes 3 jFrame (classe): Veculos

Componentes: 3 Jframes (ou 3 classes) Na janela PRINCIPAL vamos colocar: 1 Painel com cor, 1 Barra de menu, 1 Rtulo Na janela: Clientes vamos colocar: 3 Rtulos, 3 Campos Formatados (Nome, Telefone e CPF) e 2 Botes (Cadastrar e Menu Principal) Na janela Veculos: 5 Rtulos (Modelo do veculo, Cor, Ano de Fabricao, Chassi, Placa), 3 caixas de combinaes, 1 campo de texto e 2 Botes (Cadastrar e Retornar ao menu principal).

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

25

Editar a Janela Clientes desta forma:

Observe a seguir o Cdigo java:

Clicar com o boto direito no menu em Clientes:

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

26

Insira o seguinte cdigo que vai chamar o outro formulrio jFrame: private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Clientes FormClientes = new Clientes(); FormClientes.show(); setVisible(false); }

No boto Retornar ao Menu Principal segundo form (jFrame2) digite o evento seguinte: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Principal FormPrincipal = new Principal(); FormPrincipal.show(); setVisible(false); }

Falta-nos Editar a janela Veculos (Faa voc mesmo) ... e conclua.

Agora voc primeiramente compila pressionando F9 e em seguida Executa pressionando <SHIFT> +F6

SISTEMA DE FOLHA DE PAGAMENTO COM MENU PRINCIPAL E OUTROS FORMULRIOS


Outro exemplo de uso de vrios forms: Nome do Projeto: SistemaFolha Nome do 1 jFrame (classe): Principal Nome do 2 jFrame (classe): Horistas

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

27

Nome do 3 jFrame (classe): Comissionados No Formulrio Principal colocar: 1 Painel com cor de fundo, Um Rtulo no meio e 1 Barra de menu com Itens de menu. No Formulrio Horistas colocar: 4 Rtulos, 2 campos de texto, 2 Botes de opo com ButtonGroup(invisvel) e 2 Botes. No Formulrio Comissionados colocar: 1 Painel com cor de fundo e ttulo, 4 Rtulos ( Cdigo do vendedor, Nome, Total de Vendas, Departamento, 4 Campos de Texto, 3 Botes de opo (depto1, depto2 e depto 3) e 2 Botes (Calcular e Retornar ao menu principal)

Para Horistas no MenuItem:

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

28

Digite o cdigo: Horistas FormHoristas = new Horistas(); FormHoristas.show(); setVisible(false);

No boto Retornar ao Menu Principal do outro formulrio (Horistas): Principal FormPrincipal = new Principal (); FormPrincipal.show(); setVisible(false); Completando o projeto Folha de pagamento para horistas e comissionados. Os resultados de cada folha de pagamento ser colocado em um JOptionPane a parte. Vamos usar a Formatao de nmeros para colocar os valores em Reais. Para que isso ocorra precisamos colocar no cdigo java principal bem no alto as seguintes bibliotecas:

COLOCA-SE NO INCIO DO CDIGO:

import javax.swing.JOptionPane; import java.text.NumberFormat;


6. Sistema de Folha de Pagamento com Formatao de nmeros no formato de moeda (R$ - Reais) utilizando o: NumberFormat.getCurrencyInstance().format(...);

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

29

Sada formatada em Reais (Brasil):

Cdigos:
Menu da janela Principal: private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Horistas FormHoristas = new Horistas(); FormHoristas.show(); setVisible(false); }

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Comissionado FormComissionado = new Comissionado(); FormComissionado.show(); setVisible(false); }

private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: System.exit(0); }

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

30

Cdigo do Boto Retornar Horistas:


private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Principal FormPrincipal = new Principal(); FormPrincipal.show(); setVisible(false); }

Cdigo do boto Calcular do Horista:


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: double sh, ht, salbruto, perc,desc, saliq, abono=0; String nome; nome = jTextField1.getText(); sh = Float.parseFloat(jTextField2.getText()); ht = Float.parseFloat(jTextField3.getText()); //Consistncia do jRadioButton, se um for marcado os outros no podem if (jRadioButton1.isSelected()) { abono = 200; jRadioButton2.setSelected(false); } else if (jRadioButton2.isSelected()) { abono = 100; jRadioButton1.setSelected(false); }

salbruto = (sh*ht)+abono; if (salbruto <= 1000) perc = 0f; else if (salbruto <= 4000) perc = 0.1f; else if (salbruto <= 6000) perc = 0.15f; else perc = 0.2f; desc = salbruto * perc; saliq = salbruto - desc; String salbruto1=NumberFormat.getCurrencyInstance().format(salbruto); String desc1=NumberFormat.getCurrencyInstance().format(desc); String saliq1=NumberFormat.getCurrencyInstance().format(saliq); JOptionPane.showMessageDialog(null,"Nome ="+nome+"\nSalrio Bruto = "+salbruto1+"\nDesconto = "+desc1+"\nSalrioLquido = "+saliq1);

Cdigo do Formulrio Comissionados:


Boto Retornar:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos Alberto

31

// TODO add your handling code here: Principal FormPrincipal = new Principal(); FormPrincipal.show(); setVisible(false); }

Boto Calcular:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: double sf, totvendas, abono, pe, comis,salbruto, desc, saliq, perc; String nome=""; nome = jTextField1.getText(); sf = Float.parseFloat(jTextField2.getText()); totvendas = Float.parseFloat(jTextField3.getText()); if (jRadioButton1.isSelected()) { jRadioButton2.setSelected(false); abono = 200; } else { jRadioButton1.setSelected(false); abono = 100; } if (totvendas <= 1000) perc = 0f; else if (totvendas <= 4000) perc =0.05f; else if (totvendas <= 8000) perc = 0.1f; else perc=0.15f; comis = totvendas * perc; salbruto = sf + comis; if (salbruto <= 1200) pe = 0.8f; else if (salbruto <1680) pe = 0.9f; else if (salbruto <= 2400) pe = 0.11f; else desc = 430; desc = salbruto * perc; saliq = salbruto - desc; String salbruto1=NumberFormat.getCurrencyInstance().format(salbruto); String desc1=NumberFormat.getCurrencyInstance().format(desc); String saliq1=NumberFormat.getCurrencyInstance().format(saliq); String comis1=NumberFormat.getCurrencyInstance().format(comis); JOptionPane.showMessageDialog(null,"Nome ="+nome+"\nComisso = "+comis1+"\nSalrio Bruto = "+salbruto1+"\nDesconto = "+desc1+"\nSalrioLquido = "+saliq1);
A qualquer momento incluirei mais alguma coisa neste tutorial, conforme o que vai sendo feito em classe ... Depende do que feito em classe.

Vous aimerez peut-être aussi