Académique Documents
Professionnel Documents
Culture Documents
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...)
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
Material didtico
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.
Obs. Se voc no vir a janela Paleta no canto direito superior do IDE, escolha Janelas > Paleta.
Material didtico
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.
Material didtico
(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.
Material didtico
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
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.
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
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.
Material didtico
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
Material didtico
10
Material didtico
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
12
Boto Sair:
System.exit(0);
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
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);
Material didtico
14
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
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.
Material didtico
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:
17
Material didtico
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.
Material didtico
19
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
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.
import javax.swing.JOptionPane;
Material didtico
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
22
BOTO LIMPAR:
jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText("");
BOTO SAIR:
System.exit(0);
Material didtico
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
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);
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
25
Material didtico
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); }
Agora voc primeiramente compila pressionando F9 e em seguida Executa pressionando <SHIFT> +F6
Material didtico
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)
Material didtico
28
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:
Material didtico
29
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
30
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);
Material didtico
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.