Boa tarde Pessoal,
Atendendo a alguns pedidos, segue abaixo as formatações que eu mais utilizo no Delphi.
Para moeda - utilizo para formatação de campo numero no rave project, Ztable, ZQuery, ADOTable a ADOQuery
R$ #,##0.00
Para horario - utilizo em campo date/time (comum no Access) no rave project.
hh:nn:ss
Para data - este é a mascara para o componente MaskEdit.
!99/99/0000;1;_
Para data - este é a formatação para função FormatFloat. Comum quando trabalhamos com banco dados MySQL.
'yyyy-mm-dd' ou 'dd/mm/yyyy'
Espero ter ajudado alunos,
Abraços, Emanuel
segunda-feira, 24 de outubro de 2011
domingo, 23 de outubro de 2011
Criando PDF com Rave Report.
Ola
Como criar um arquivo PDF no Rave Report e abri-lo. Tenho que chamar atenção de vocês a um pequeno detalhe: utilizo a função ShellExecute para abrir o arquivo pdf, então temos que adicionar a biblioteca ShellAPI no USES.
procedure Tfrm_form1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Pdir: Pchar;
begin
if (key = VK_F4) then
begin
dm.Query_bancos.Close;
dm.Query_bancos.Open;
RvSystem1.SystemSetups := RvSystem1.SystemSetups - [ssAllowSetup];
RvSystem1.DefaultDest := rdFile;
RvSystem1.DoNativeOutput := false;
RvSystem1.RenderObject := RvRenderPDF1;
RvSystem1.OutputFileName := 'C:\tmp.pdf';
RvProject1.Execute;
//ABRINDO O ARQUIVO PDF CRIADO
GetMem(pDir,256);
StrPCopy(pDir, 'C:\tmp.pdf'); {Aqui vc coloca o caminho + o nome do arquivo}
ShellExecute(0, nil, 'tmp.pdf', nil, Pdir, SW_NORMAL);
FreeMem(pdir,256);
end;
end;
end;
Como criar um arquivo PDF no Rave Report e abri-lo. Tenho que chamar atenção de vocês a um pequeno detalhe: utilizo a função ShellExecute para abrir o arquivo pdf, então temos que adicionar a biblioteca ShellAPI no USES.
procedure Tfrm_form1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Pdir: Pchar;
begin
if (key = VK_F4) then
begin
dm.Query_bancos.Close;
dm.Query_bancos.Open;
RvSystem1.SystemSetups := RvSystem1.SystemSetups - [ssAllowSetup];
RvSystem1.DefaultDest := rdFile;
RvSystem1.DoNativeOutput := false;
RvSystem1.RenderObject := RvRenderPDF1;
RvSystem1.OutputFileName := 'C:\tmp.pdf';
RvProject1.Execute;
//ABRINDO O ARQUIVO PDF CRIADO
GetMem(pDir,256);
StrPCopy(pDir, 'C:\tmp.pdf'); {Aqui vc coloca o caminho + o nome do arquivo}
ShellExecute(0, nil, 'tmp.pdf', nil, Pdir, SW_NORMAL);
FreeMem(pdir,256);
end;
end;
end;
sexta-feira, 14 de outubro de 2011
Evitando digitação de virgula em componente Edit - Delphi
Procedimento para serem usados em um componente Edit para evitar a digitação de virgula e só aceitar números.
No seu componente Edit coloque os dois códigos nos eventos OnChange e OnKeyPress.
procedure Tfrm_formulario.edt_valorChange(Sender: TObject);
var
s:string;
v:double;
I:integer;
begin
//1º Passo : se o edit estiver vazio, nada pode ser feito.
If (edt_valor.Text = emptystr) then
edt_valor.Text := '0,00';
//2º Passo : obter o texto do edit, SEM a virgula e SEM o ponto decimal:
s := '';
for I := 1 to length(edt_valor.Text) do
if (edt_valor.text[I] in ['0'..'9']) then
s := s + edt_valor.text[I];
//3º Passo : fazer com que o conteúdo do edit apresente 2 casas decimais:
v := strtofloat(s);
v := (v /100); // para criar 2 casa decimais
//4º Passo : Formata o valor de (V) para aceitar valores do tipo 0,10.
edt_valor.text := FormatFloat('###,##0.00',v);
edt_valor.SelStart := 0;
end;
procedure Tfrm_formulario.edt_valorKeyPress(Sender: TObject;
var Key: Char);
begin
if NOT (Key in ['0'..'9', #8, #9, #13]) then
begin
key := #0;
end;
//Função para posicionar o cursor sempre na direita
edt_valor.selstart := Length(edt_valor.text);
end;
No seu componente Edit coloque os dois códigos nos eventos OnChange e OnKeyPress.
procedure Tfrm_formulario.edt_valorChange(Sender: TObject);
var
s:string;
v:double;
I:integer;
begin
//1º Passo : se o edit estiver vazio, nada pode ser feito.
If (edt_valor.Text = emptystr) then
edt_valor.Text := '0,00';
//2º Passo : obter o texto do edit, SEM a virgula e SEM o ponto decimal:
s := '';
for I := 1 to length(edt_valor.Text) do
if (edt_valor.text[I] in ['0'..'9']) then
s := s + edt_valor.text[I];
//3º Passo : fazer com que o conteúdo do edit apresente 2 casas decimais:
v := strtofloat(s);
v := (v /100); // para criar 2 casa decimais
//4º Passo : Formata o valor de (V) para aceitar valores do tipo 0,10.
edt_valor.text := FormatFloat('###,##0.00',v);
edt_valor.SelStart := 0;
end;
procedure Tfrm_formulario.edt_valorKeyPress(Sender: TObject;
var Key: Char);
begin
if NOT (Key in ['0'..'9', #8, #9, #13]) then
begin
key := #0;
end;
//Função para posicionar o cursor sempre na direita
edt_valor.selstart := Length(edt_valor.text);
end;
sábado, 8 de outubro de 2011
Instalação do ZeosLib e RaveProject no Delphi 2010.
Ola,
Recentemente consegui a instalação do Delphi 2010, nada contra o Delphi 7, mas estava curioso de pegar uma IDE mais robusta, mais nova. Pois estou acostumado a programar em Java e as IDEs Eclipse e NetBeans fornece vários recursos que eu sinto muita falta quando estou no Delphi.
Bom! após a instalação do Embarcadero Delphi 2010 (passo o link pra vocês depois), tentei abrir alguns projetos meus e pra minha surpresa ele não vem com o Rave e precisamos instalar o Zeos. Segue abaixo o caminho das pedras.
INSTALAR RAVEPROJECT
1) http://www.4shared.com/file/q-c_JCwa/RaveReports_D2010.html
INSTALAR ZEOSLIB
1 – Faça o download do arquivo zeosdbo-7.0.0-alpha em http://zeos.firmos.at/portal.php
2 – Crie uma pasta chamada zeos7 dentro da pasta lib do rad studio. Por exemplo, meu rad studio está em c:\Arquivos de programas\codegear\rad studio\6.0\lib, então meu diretório base será: c:\arquivos de programas\codegear\rad studio\6.0\lib\zeos7
3 – Descompacte os arquivos dentro do diretório recem criado no ítem 2.
4 – Com o delphi 2009/2010 aberto, vá em file -open project (ctrl+f11) e abra o arquivo zeosdbo.groupproj, dentro de c:\Arquivos de programas\codegear\rad studio\6.0\lib\zeos7\packages\delphi12
5 – vá ao menu project – build all projects
6 – Antes de continuar, se você estiver usando o Windows Vista ou Windows 7 com o UAC habilitado, você terá que dar permissão total para a pasta zeos7 criada, caso contrário não irá funcionar.
7 – Agora, antes da instalação vá ao menu Tools – Options – Environment Options – Delphi Options – Library – win 32 e adicione o caminho a seguir no Library Path: $(bds)\lib\zeos7\packages\delphi12\build
8 – Feito isto, minimize o delphi, abra o diretório c:\Arquivos de programas\codegear\rad studio\6.0\lib\zeos7\packages\delphi12\build, selecione todos os arquivos “.bpl” copie-os e cole-o dentro da pasta bpl do rad studio: c:\users\public\documents\rad studio\6.0\bpl
9 – Volte ao delphi vá ao menu View – Project Manager (ctrl + atl + f11). Selecione e compile as bpls abaixo, uma a uma. Para compilar, clique com o botão direto sobre o bpl. é a primeira opção(Compile).
– zcore120.bpl
– zplain120.bpl
– zparsesql120.bpl
– zdbc120.blq
– zcomponent120.bpl
– zcomponentdesign120.bpl
10 – Depois de compiladas, clique com o botão direito sobre o pacote ZComponentDesign120.bpl (o único em negrito) e clique em Install.
11 – Pronto, feche tudo (File – Close All). Crie um novo projeto e veja que os componentes já podem ser utilizados.
Recentemente consegui a instalação do Delphi 2010, nada contra o Delphi 7, mas estava curioso de pegar uma IDE mais robusta, mais nova. Pois estou acostumado a programar em Java e as IDEs Eclipse e NetBeans fornece vários recursos que eu sinto muita falta quando estou no Delphi.
Bom! após a instalação do Embarcadero Delphi 2010 (passo o link pra vocês depois), tentei abrir alguns projetos meus e pra minha surpresa ele não vem com o Rave e precisamos instalar o Zeos. Segue abaixo o caminho das pedras.
INSTALAR RAVEPROJECT
1) http://www.4shared.com/file/q-c_JCwa/RaveReports_D2010.html
INSTALAR ZEOSLIB
1 – Faça o download do arquivo zeosdbo-7.0.0-alpha em http://zeos.firmos.at/portal.php
2 – Crie uma pasta chamada zeos7 dentro da pasta lib do rad studio. Por exemplo, meu rad studio está em c:\Arquivos de programas\codegear\rad studio\6.0\lib, então meu diretório base será: c:\arquivos de programas\codegear\rad studio\6.0\lib\zeos7
3 – Descompacte os arquivos dentro do diretório recem criado no ítem 2.
4 – Com o delphi 2009/2010 aberto, vá em file -open project (ctrl+f11) e abra o arquivo zeosdbo.groupproj, dentro de c:\Arquivos de programas\codegear\rad studio\6.0\lib\zeos7\packages\delphi12
5 – vá ao menu project – build all projects
6 – Antes de continuar, se você estiver usando o Windows Vista ou Windows 7 com o UAC habilitado, você terá que dar permissão total para a pasta zeos7 criada, caso contrário não irá funcionar.
7 – Agora, antes da instalação vá ao menu Tools – Options – Environment Options – Delphi Options – Library – win 32 e adicione o caminho a seguir no Library Path: $(bds)\lib\zeos7\packages\delphi12\build
8 – Feito isto, minimize o delphi, abra o diretório c:\Arquivos de programas\codegear\rad studio\6.0\lib\zeos7\packages\delphi12\build, selecione todos os arquivos “.bpl” copie-os e cole-o dentro da pasta bpl do rad studio: c:\users\public\documents\rad studio\6.0\bpl
9 – Volte ao delphi vá ao menu View – Project Manager (ctrl + atl + f11). Selecione e compile as bpls abaixo, uma a uma. Para compilar, clique com o botão direto sobre o bpl. é a primeira opção(Compile).
– zcore120.bpl
– zplain120.bpl
– zparsesql120.bpl
– zdbc120.blq
– zcomponent120.bpl
– zcomponentdesign120.bpl
10 – Depois de compiladas, clique com o botão direito sobre o pacote ZComponentDesign120.bpl (o único em negrito) e clique em Install.
11 – Pronto, feche tudo (File – Close All). Crie um novo projeto e veja que os componentes já podem ser utilizados.
quarta-feira, 5 de outubro de 2011
Delphi - CheckBox no DBGrid.
Ola Pessoal,
Após um tempo de turbulência no trabalho, mais um post.
Estava desenvolvendo mais um sistema para um cliente e me deparei com uma duvida.
- Criei uma tabela nova pro cliente, com um campo Boolean.
- Coloquei um DBGrid para ele acessar essa tabela (adicionar, remover, editar e excluir).
- E um DBNavigator
Uma tabela simples mesmo, possível de controlar com um DBNavigator. Só que fiquei pensando: Porque eu não coloco um simples CheckBox pro cliente neste campo boolean, pra evitar que ele tenha que ficar digitando FALSE/TRUE. Um clique e pronto!
Vamos ao código pra fazer isso ;-)
1) Crie seu formulário, com o DBGrid conectado a tabela.
2) Selecione o seu DBGrid e acione o evento OnDrawColumnCell.
3) Coloque o seguinte código
procedure Tfrm_tarefas.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
Check: Integer;
R: TRect;
begin
if Column.FieldName = 'concluido' then //COLOQUE O NOME DA COLUNA, NO MEU CASO 'CONCLUIDO'
begin
DBGrid1.Canvas.FillRect(Rect);
Check := 0;
if tarefasconcluido.AsBoolean = true then
Check := DFCS_CHECKED
else
Check := 0;
R:=Rect;
InflateRect(R,-2,-2); {Diminue o tamanho do CheckBox}
DrawFrameControl(DBGrid1.Canvas.Handle,R,DFC_BUTTON, DFCS_BUTTONCHECK or Check);
end;
end;
4) Selecione o seu DBGrid e acione o evento OnCellClick
5) Coloque o seguinte código:
procedure Tfrm_tarefas.DBGrid1CellClick(Column: TColumn);
begin
tarefas.Edit;
if tarefasconcluido.AsBoolean = true then
tarefasconcluido.AsBoolean := false
else
tarefasconcluido.AsBoolean := true;
tarefas.Post;
end;
É isso ai pessoal! Bem simples e fácil
Espero ter ajudado, Abraços
Após um tempo de turbulência no trabalho, mais um post.
Estava desenvolvendo mais um sistema para um cliente e me deparei com uma duvida.
- Criei uma tabela nova pro cliente, com um campo Boolean.
- Coloquei um DBGrid para ele acessar essa tabela (adicionar, remover, editar e excluir).
- E um DBNavigator
Uma tabela simples mesmo, possível de controlar com um DBNavigator. Só que fiquei pensando: Porque eu não coloco um simples CheckBox pro cliente neste campo boolean, pra evitar que ele tenha que ficar digitando FALSE/TRUE. Um clique e pronto!
Vamos ao código pra fazer isso ;-)
1) Crie seu formulário, com o DBGrid conectado a tabela.
2) Selecione o seu DBGrid e acione o evento OnDrawColumnCell.
3) Coloque o seguinte código
procedure Tfrm_tarefas.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
Check: Integer;
R: TRect;
begin
if Column.FieldName = 'concluido' then //COLOQUE O NOME DA COLUNA, NO MEU CASO 'CONCLUIDO'
begin
DBGrid1.Canvas.FillRect(Rect);
Check := 0;
if tarefasconcluido.AsBoolean = true then
Check := DFCS_CHECKED
else
Check := 0;
R:=Rect;
InflateRect(R,-2,-2); {Diminue o tamanho do CheckBox}
DrawFrameControl(DBGrid1.Canvas.Handle,R,DFC_BUTTON, DFCS_BUTTONCHECK or Check);
end;
end;
4) Selecione o seu DBGrid e acione o evento OnCellClick
5) Coloque o seguinte código:
procedure Tfrm_tarefas.DBGrid1CellClick(Column: TColumn);
begin
tarefas.Edit;
if tarefasconcluido.AsBoolean = true then
tarefasconcluido.AsBoolean := false
else
tarefasconcluido.AsBoolean := true;
tarefas.Post;
end;
É isso ai pessoal! Bem simples e fácil
Espero ter ajudado, Abraços
sexta-feira, 26 de agosto de 2011
Teste para entrevista de emprego - Linguagem C
Bom dia Pessoal,
Ontem, eu fiz uma entrevista de emprego e pensei: porque não colocar aqui no blog? se é pra ajudar né ;-)
Bom, vamos a elas (eram 3 questões).
Primeira questão - Famosa função para calcular fatorial
Lembrando que uma função recursiva deve sempre ter três preocupações.
1. Condição de parada
2. Formula do cálculo (Na pressa eu cometi um erro aqui :-s esqueci uma multiplicação, mas que inutiliza todo o código, espero que vocês não cometam o mesmo erro que eu).
3. Retorno da função
Vamos ao código
int Fatoria(int f){
if (f <= 0)
return (1);
else
return (f * Fatorial(f - 1));
}
Segunda questão - Criar uma lista duplamente linkada (Estou pensando em escrever um post só sobre isso, o charme da linguagem C são os ponteiro e as listas linkadas são muito funcional, quando BEM estruturadas).
typedef struct palavra{
int posicao;
char[100] palavra_portugues;
char[100] palavra_ingles;
Palavra *proximo;
Palavra *anterior;
}Palavra;
typedef struct dicionario{
int tamanho;
Palavra *primeiro;
Palavra *ultimo;
} Dicionario;
Terceira questão - Usando a estrutura definida na questão 2, criar uma função que faz uma consulta.
char[100] Busca(char[100] palavra_busca){
char[100] palavra_retorno;
Palavra *tmp;
tmp = Dicionario->primeiro;
while (tmp->palavra_portugues != palavra_busca && tmp != NULL){
tmp = tmp->proximo;
}
if (tmp == NULL)
palavra_retorno = "";
else
palavra_retorno = tmp->palavra_ingles;
return(palavra_retorno);
}
É isso ai! Pessoal abraços
Ontem, eu fiz uma entrevista de emprego e pensei: porque não colocar aqui no blog? se é pra ajudar né ;-)
Bom, vamos a elas (eram 3 questões).
Primeira questão - Famosa função para calcular fatorial
Lembrando que uma função recursiva deve sempre ter três preocupações.
1. Condição de parada
2. Formula do cálculo (Na pressa eu cometi um erro aqui :-s esqueci uma multiplicação, mas que inutiliza todo o código, espero que vocês não cometam o mesmo erro que eu).
3. Retorno da função
Vamos ao código
int Fatoria(int f){
if (f <= 0)
return (1);
else
return (f * Fatorial(f - 1));
}
Segunda questão - Criar uma lista duplamente linkada (Estou pensando em escrever um post só sobre isso, o charme da linguagem C são os ponteiro e as listas linkadas são muito funcional, quando BEM estruturadas).
typedef struct palavra{
int posicao;
char[100] palavra_portugues;
char[100] palavra_ingles;
Palavra *proximo;
Palavra *anterior;
}Palavra;
typedef struct dicionario{
int tamanho;
Palavra *primeiro;
Palavra *ultimo;
} Dicionario;
Terceira questão - Usando a estrutura definida na questão 2, criar uma função que faz uma consulta.
char[100] Busca(char[100] palavra_busca){
char[100] palavra_retorno;
Palavra *tmp;
tmp = Dicionario->primeiro;
while (tmp->palavra_portugues != palavra_busca && tmp != NULL){
tmp = tmp->proximo;
}
if (tmp == NULL)
palavra_retorno = "";
else
palavra_retorno = tmp->palavra_ingles;
return(palavra_retorno);
}
É isso ai! Pessoal abraços
sexta-feira, 19 de agosto de 2011
Testando IDE NetBeans para desenvolvimento em Java.
Fazendo uns estudos, navegando, vendo as novidades sobre Desenvolvimento.
Li uma reportagem sobre o novo (não tão novo, apenas pra mim :-) ) IDE para desenvolvimento em Java, o NetBeans 7.0: http://www.infoq.com/br/news/2011/05/netbeans7
O que me chamou atenção foi o editor visual (GridBagLayout) e o GlassFish Server. Já sabia que o NetBeans da suporte a desenvolvimento em C/C++, PHP e HTML, mas para essas linguagens eu utilizo o NotePad++ e acho muito bom, só que o NotePad++ não tem edição gráfica para JavaForms (Swing).
Assim baixei o programa (www.netbeans.org), instalei e fiz uma calculadora para ver todo o potencial.
Vamos a ele:
Passo 1) Baixar o NetBeans e instala-lo - lembrando que deve ter um JDK compatível já instalado.
Passo 2) Abrir o NetBeans e aqui uma coisa me desagradou, demorou bastante para carrega-lo, deve ter sido por causa da procura de atualizações e etc. Deviam deixar para o usuário fazer manualmente.
Passo 3) Criar um projeto - funciona parecido com o Eclipse ou VisualStudio, tudo gira em torno de projetos.
Para isso use CTRL + SHIFT + N.
Na janela que se abre, escolha a Categoria: Java e Projeto: Aplicativo Java. Clique no botão Próximo.
Na próxima tela defina o nome do projeto como Calculadora e clique em finalizar.
Passo 4) Criando o frontend.
Para isso, no projeto Calculadora, clique com o botão direito do mouse e escolha Novo -> Outro.
Na janela que se abre, escolha a Categoria: Formulários GUI Swing e Tipos de arquivos: Formulário JFrame. Clique no botão Próximo.
Na próxima tela defina o nome como CalculadoraUI, pacote como my.calculadora.org e clique em finalizar.
Passo 5) Na parte central do programa, vai aparecer o Frame e no canto direito os componentes (swing) que podemos trabalhar.
Adicione 3 jLabels, 3 jTextFields e 3 jButtons - não sera uma calculadora completa, apenas a operação de soma.
As disposições deles dentro do frame, fica a critério de vocês.
Passo 6) Altere o texto dos jLabels.
Para isso, clique no primeiro jLabel (provavelmente nomeado como jLabel1) com o botão direito do mouse e escolha "Editar Texto". Modifique para "Primeiro numero" e pressione Enter.
Faça o mesmo processo no segundo label e mude para "Segundo numero".
Faça o mesmo processo para o ultimo label e mude para "Resultado".
Passo 7) Limpar o texto dos jTextFields.
Para isso, clique com o botão direito do mouse sobre o jTextFields e remova o texto deles.
Passo 8) Modificar o texto dos botões.
Para isso, clique com o botão direito do mouse sobre os jButtons e modifique para "Somar", "Limpar" e "Sair".
Passo 9) Adicionar funcionalidade aos botões.
Para isso, clique no jButton-Sair com o botão direito e escolha a opção: Eventos->Action->ActionPerformed.
Coloque o seguinte código na função criada pela IDE: System.exit(0);
Clique no jButton-Limpar com o botão direito e escolha a opção: Eventos->Action->ActionPerformed.
Coloque o seguinte código na função criada pela IDE:
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
Clique no jButton-Somar com o botão direito e escolha a opção: Eventos->Action->ActionPerformed.
Coloque o seguinte código na função criada pela IDE:
float num1, num2, result;
num1 = Float.parseFloat(jTextField1.getText());
num2 = Float.parseFloat(jTextField2.getText());
result = num1 + num2;
jTextField3.setText(String.valueOf(result));
Passo 10) A nossa calculadora simples esta pronta, só falta rodar e testa-lo ;-)
Para isso, Pressione F6 ou menu Executar->Executar projeto principal...
Conclusões: Me agradou muito o GridBagLayout, sendo que escrever o código para posicionamento dos componentes swing e os eventos, toma um tempo razoável do programador, disperdicio de tempo pra mim. Agora não mais ;-)
Quanto ao GlassFish eu não testei, principalmente porque uso o TomCat. Mas me disseram que você pode ter e gerenciar os dois servers no NetBeans, isso é muito bom! Verei mais depois.
A interface do NetBeans é muito boa, limpa... acesso aos comandos é intuitivo, fácil.
Primeira impressão, dou uma nota 8,5 e começarei a utiliza-lo para programas em Java ;-)
Bom! é isso ai gente! um abração!
Li uma reportagem sobre o novo (não tão novo, apenas pra mim :-) ) IDE para desenvolvimento em Java, o NetBeans 7.0: http://www.infoq.com/br/news/2011/05/netbeans7
O que me chamou atenção foi o editor visual (GridBagLayout) e o GlassFish Server. Já sabia que o NetBeans da suporte a desenvolvimento em C/C++, PHP e HTML, mas para essas linguagens eu utilizo o NotePad++ e acho muito bom, só que o NotePad++ não tem edição gráfica para JavaForms (Swing).
Assim baixei o programa (www.netbeans.org), instalei e fiz uma calculadora para ver todo o potencial.
Vamos a ele:
Passo 1) Baixar o NetBeans e instala-lo - lembrando que deve ter um JDK compatível já instalado.
Passo 2) Abrir o NetBeans e aqui uma coisa me desagradou, demorou bastante para carrega-lo, deve ter sido por causa da procura de atualizações e etc. Deviam deixar para o usuário fazer manualmente.
Passo 3) Criar um projeto - funciona parecido com o Eclipse ou VisualStudio, tudo gira em torno de projetos.
Para isso use CTRL + SHIFT + N.
Na janela que se abre, escolha a Categoria: Java e Projeto: Aplicativo Java. Clique no botão Próximo.
Na próxima tela defina o nome do projeto como Calculadora e clique em finalizar.
Passo 4) Criando o frontend.
Para isso, no projeto Calculadora, clique com o botão direito do mouse e escolha Novo -> Outro.
Na janela que se abre, escolha a Categoria: Formulários GUI Swing e Tipos de arquivos: Formulário JFrame. Clique no botão Próximo.
Na próxima tela defina o nome como CalculadoraUI, pacote como my.calculadora.org e clique em finalizar.
Passo 5) Na parte central do programa, vai aparecer o Frame e no canto direito os componentes (swing) que podemos trabalhar.
Adicione 3 jLabels, 3 jTextFields e 3 jButtons - não sera uma calculadora completa, apenas a operação de soma.
As disposições deles dentro do frame, fica a critério de vocês.
Passo 6) Altere o texto dos jLabels.
Para isso, clique no primeiro jLabel (provavelmente nomeado como jLabel1) com o botão direito do mouse e escolha "Editar Texto". Modifique para "Primeiro numero" e pressione Enter.
Faça o mesmo processo no segundo label e mude para "Segundo numero".
Faça o mesmo processo para o ultimo label e mude para "Resultado".
Passo 7) Limpar o texto dos jTextFields.
Para isso, clique com o botão direito do mouse sobre o jTextFields e remova o texto deles.
Passo 8) Modificar o texto dos botões.
Para isso, clique com o botão direito do mouse sobre os jButtons e modifique para "Somar", "Limpar" e "Sair".
Passo 9) Adicionar funcionalidade aos botões.
Para isso, clique no jButton-Sair com o botão direito e escolha a opção: Eventos->Action->ActionPerformed.
Coloque o seguinte código na função criada pela IDE: System.exit(0);
Clique no jButton-Limpar com o botão direito e escolha a opção: Eventos->Action->ActionPerformed.
Coloque o seguinte código na função criada pela IDE:
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
Clique no jButton-Somar com o botão direito e escolha a opção: Eventos->Action->ActionPerformed.
Coloque o seguinte código na função criada pela IDE:
float num1, num2, result;
num1 = Float.parseFloat(jTextField1.getText());
num2 = Float.parseFloat(jTextField2.getText());
result = num1 + num2;
jTextField3.setText(String.valueOf(result));
Passo 10) A nossa calculadora simples esta pronta, só falta rodar e testa-lo ;-)
Para isso, Pressione F6 ou menu Executar->Executar projeto principal...
Conclusões: Me agradou muito o GridBagLayout, sendo que escrever o código para posicionamento dos componentes swing e os eventos, toma um tempo razoável do programador, disperdicio de tempo pra mim. Agora não mais ;-)
Quanto ao GlassFish eu não testei, principalmente porque uso o TomCat. Mas me disseram que você pode ter e gerenciar os dois servers no NetBeans, isso é muito bom! Verei mais depois.
A interface do NetBeans é muito boa, limpa... acesso aos comandos é intuitivo, fácil.
Primeira impressão, dou uma nota 8,5 e começarei a utiliza-lo para programas em Java ;-)
Bom! é isso ai gente! um abração!
Assinar:
Postagens (Atom)