You are on page 1of 18

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos

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

Exemplo 1: Criando um projeto


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 Arquivo > Formulrio GUI Swing >Formulrio JFrame.

Adicao e selecione Novo

Material didtico Java GUI do NetBeans Criando interfaces grficas rpidas 2. Indique o nome da classe: NumeroAdicao. 3. Indique o pacote: Adicao. 4. Clique em Terminar.

Prof. Carlos

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. 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

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos

Renomeando os componentes
Nesta etapa, vamos renomear o texto de exibio dos componentes que acabamos de adicionar ao JFrame. 1. Clique duas vezes em 2. Clique duas vezes em 3. Clique duas vezes em

jLabel1 e altere a propriedade do texto para Primeiro nmero: jLabel2 e altere o texto para Segundo nmero: 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 7. Renomeie o texto de exibio de

jButton2 para Adicionar. jButton3 para Sair.

Sua GUI finalizada agora deve ser semelhante captura de tela seguinte:

Exerccio 3: Adicionando funcionalidade


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

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos

Fazendo o boto Sair funcionar


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 para sair do programa, ficar com esta aparncia:

2. Escreva apenas: System.exit(0);

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); }

Fazendo o boto Limpar funcionar


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.

Fazendo o boto Adicionar funcionar


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. 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

Material didtico Java GUI do NetBeans Criando interfaces grficas rpidas resultado = num1+num2; // Vamos colocar o resultado na caixa de texto // para isso temos que converter float para string. jTextField3.setText(String.valueOf(resultado));

Prof. Carlos

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

Exerccio 4: 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.

EXERCCIO: FAZENDO UMA INTERFACE GRFICA PARA CADASTRO DE CLIENTES

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos

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) d) No terceiro Painel vemos 3 botes (jButtons): Confirmar, Limpar e Fechar

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;

Material didtico Java GUI do NetBeans Criando interfaces grficas rpidas Prof. Carlos 7 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

+ Exemplos feitos em classe


1. Converso de dlar para Real, pela cotao do dia

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:
jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText("");

Boto Sair:
System.exit(0);

2. Peso Ideal e IMC

Boto Calcular:

Material didtico Java GUI do NetBeans Criando interfaces grficas rpidas 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) 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!");

Prof. Carlos

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

Sair:
System.exit(0);

4.

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

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos

10

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++) { fat=fat*i; } JOptionPane.showMessageDialog(null,"Fatorial de "+n+ " = " +fat, "Fatorial",JOptionPane.INFORMATION_MESSAGE);

5. Programa Salrio:

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

Material didtico Java GUI do NetBeans Criando interfaces grficas rpidas Prof. Carlos 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; 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);

11

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);

6.

Mltiplos painis: 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.

7.

Dia ms e Ano: 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

12

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));


}

8.

Salrio2: Retomemos o exemplo 4 (Salrio) acima e consistimos o JRadioButton, pois se um deles for marcado os outros no podero mais serem marcados o que o correto.

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()); //Consistncia do jRadioButton, se um for marcado os outros no podem

Material didtico Java GUI do NetBeans Criando interfaces grficas rpidas if (jRadioButton2.isSelected()) { abono = 200; jRadioButton1.setSelected(false); jRadioButton3.setSelected(false); jRadioButton4.setSelected(false); } else if (jRadioButton3.isSelected()) { abono = 200; jRadioButton1.setSelected(false); jRadioButton2.setSelected(false); jRadioButton4.setSelected(false); } else if (jRadioButton1.isSelected()) { abono = 100; jRadioButton2.setSelected(false); jRadioButton3.setSelected(false); jRadioButton4.setSelected(false); } else if (jRadioButton4.isSelected()) { abono = 100; jRadioButton1.setSelected(false); jRadioButton2.setSelected(false); jRadioButton3.setSelected(false); }

Prof. Carlos

13

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; JOptionPane.showMessageDialog(null,"Cdigo = "+cod+"\nNome = "+nome+"\nSalrio Bruto = R$ "+salbruto+"\nDesconto = R$ "+desc+"\nSalrio Lquido = R$ "+saliq); }

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

Boto Sair: System.exit(0);

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos

14

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 { 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 {

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos

15

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); 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

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

($1,535,50) 1244.5

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos

16

mostra zero na frente e no mostra zeros no final.

importante lembrar que DecimalFormat no adequada para formatar notaes cientfica, tabelas com colunas de largura fixa e nem nmeros em formato hexadecimal ou octal. 9. Uso de Menus Vrios Forms: demais forms (jFrames) No menu dp Sistemade Locao chama-se os

Cdigo java:

clicar com o boto direito no menu em Clientes:

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos

17

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 Menu segundo form (jFrame2) digite o evento seguinte: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Cadastro FormCadastro = new Cadastro(); FormCadastro.show(); setVisible(false); }

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

10. Outro exemplo de uso de vrios forms:

Material didtico

Java GUI do NetBeans Criando interfaces grficas rpidas

Prof. Carlos

18

Para Horistas no MenuItem:

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

No boto Retorna do outro formulrio (Horistas): Folha FormFolha = new Folha(); FormFolha.show(); setVisible(false);

Exerccio prtico: Vamos completar 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. Bom trabalho!

Boa prova final !

You might also like