• Nenhum resultado encontrado

SISTEMA EXPERIMENTALL 15/11/2009. Olá a Todos!

N/A
N/A
Protected

Academic year: 2021

Share "SISTEMA EXPERIMENTALL 15/11/2009. Olá a Todos!"

Copied!
19
0
0

Texto

(1)

15/11/2009 Olá a Todos!

Pelo fato de saber que muitos alunos do IFBA não tem muita intimidade com o NetBeans e também por não gostar do fato de não poder manipular parte do código gerado pelo próprio programa, procurei na internet alguma ferramenta que pudesse auxiliar no desenvolvimento de aplicativos swing com interface gráfica e acabei achando o EasyEclipse Desktop Java. Curioso para conhecer essa IDE gratuita de desenvolvimento?

Se você esta ansioso para desfrutar desta agradável alternativa poderá baixar a versão compatível com o seu sistema operacional (Linux ou Windows) no seguinte endereço:

http://www.easyeclipse.org/site/distributions/desktop-java.html

Após efetuar o download da versão para Windows de 137 MB, execute o EasyEclipse-Desktop-Java-1.3.1.1.exe para a instalação no computador e vamos investigar seu funcionamento.

Obs.:

Lembre-se que o jdk deve está instalado! No meu caso estou usando a versão 1.5.

Em seguida mostrarei uma seqüência de passos que farão com que você consiga fazer uma simples janela com um “link” e inserção num banco de dados. Daí em diante ficará a seu critério.

Passos

(2)

Em seguida coloque um nome para o seu projeto, avance e finalize. No nosso exemplo o projeto foi denominado: Exp.

Para que o programa possa ficar mais organizado, clique com o botão direito no projeto recém criado e escolha a opção new, package para a criação de um pacote e o denomine como principal. Repita o procedimento para criar os seguintes pacotes: database, docs e cadastros.

(3)

Crie uma classe denominada Main dentro do pacote principal e adicione o método main. package principal;

public class Main {

public static void main(String[] args) { }

}

Em seguida vamos começar a criar nossa primeira janela. Clique com o botão direito encima do pacote denominado principal, escolha a opção, New, Other e escolha a opção Java, Swing e JFrame Visual Class. Denomine o formulário como Inicio e finalize.

(4)
(5)

O JcontentPane, que é acrescentado automaticamente na janela que surgiu, deverá ser removido.

Efetue o mesmo procedimento para criar o formulário CadAluno, o qual deve ser adicionado no pacote cadastros.

Caso você não consiga visualizar alguns itens como a paleta de componentes (por exemplo), poderá fazer com que o mesmo seja exibido em: Windowns, Show View e Other caso o mesmo não

(6)

Em nosso formulário principal (Inicio), siga até a guia palette que acabamos de exibir, clique em Swing Menus e adicione o componente jMenuBar na janela. Logo em seguida dois componentes jMenu devem ser inseridos dentro do mesmo. Em cada jMenu você deve acrescentar (neste nosso exemplo) um componentes jMenuItem. Observe que embora consiga adicionar na interface gráfica sugiro que leve o jMenu diretamente para o componente na guia Java Beans e altere tanto o nome da variável (Rename Field) quanto o nome do texto visível ao usuário (Set Tex). Para isso basta clicar encima do “elemento” com o botão direito e escolher a opção desejada. No caso do Set Text, após escrever o nome desejado tecle ENTER.

(7)

Já no formulário CadAluno siga até a Palette, clique em Swing Containers, JdeskpotPanel e logo em seguida na Interface. Você notará que a colocação dos componentes ficará muito mais fácil quando inseridos sobre o mesmo. Veja!

Os componentes que devem ser inseridos para darmos continuidade ao nosso exemplo são: Dois JtextField e dois jLabel para a inserção e indicação do nome e rg além do jbutton utilizado para salvar os dados. Os itens citados encontram-se no grupo Swing Components. Logo após a

(8)

inserção dos elementos no formulário altere tanto o nome que será visível ao usuário (clicando com o botão direito e escolhendo a opção set text) quanto o nome interno (que pode ser alterado na opção rename field). Isso deve ser feito para facilitar nossa programação.

Adicione na classe Main o seguinte código: package principal;

public class Main {

public static void main(String[] args) { Inicio i = new Inicio();

/*faz com que o formulario seja visível*/

i.setVisible(true); }

}

(9)

Nosso objetivo agora é fazer com que quando o usuário clicar no item Aluno do menu Cadastros, a tela CadAluno deverá ser chamada. Para isso clique no componente jMenuItem correspondente na guia java beans com o botão direito e escolha a opção eventes, actionPerformed.

Adicione dentro do evento o seguinte código: //...

System.out.println("actionPerformed()");

cadastros.CadAluno c = new cadastros.CadAluno();

/*faz com que o formulario seja visível*/

c.setVisible(true); //...

Vamos ver o que acontece? Clique na classe Main, execute como ensinado anteriormente e siga até o menu cadastros e em aluno. A janela CadAluno apareceu?

Agora vamos melhorar o comportamento das janelas de nossa aplicação. No construtor da classe Inicio adicione após o ultimo o código o seguinte:

//nao permite a maximização

this.setResizable(false);

//fecha a aplicacao caso o X do botão fechar seja clicado

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); Já no construtor da classe CadAluno, após o ultimo o código, acrescente o seguinte:

this.setResizable(false);

//fecha a aplicacao caso o X do botão fechar seja clicado

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); Vamos colocar nossa aplicação para conversar com o banco de dados?

(10)

package principal; public class Aluno {

private String nome; private String rg;

public void setNome(String n) { this.nome = n;

}

public void setRg(String r) { this.rg = r;

}

public String getNome() { return this.nome; }

public String getRg() { return this.rg; }

}

Agora crie a classe BDMySql no pacote database e adicione o seguinte código: package database; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import javax.swing.JOptionPane; /**

* Esta classe implementa um exemplo simples utilizando Banco de dados (MySQL) * maiores referências devem ser consultadas no java doc é preciso importar para * o seu projeto o driver jdbc para o MySQL

*

* @author Renato Novais Criada em: 21/09/2008 Última atualização: 21/09/2008 */

public class BDMySql {

private static BDMySql singleton = null; private Connection con;

// padrao de projeto que cria uma única instancia da classe BDMySql

public static BDMySql getInstance() { if (singleton == null) {

singleton = new BDMySql(); }

return singleton; }

(11)

try {

Class.forName("com.mysql.jdbc.Driver").newInstance();

con = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/bdexp", "root",

"portable");

/*

* O que quer dizer cada um dos parâmentros acima banco -> * "jdbc:mysql://localhost:3306/sgwf" //banco de nome sgwf no ip

* local (localhost) usuário -> "sgwf" senha -> "sgwfpass"' */

} catch (Exception e) {

System.out.println("Nao foi possível realizar a conexão."); }

}

// Executar consultas no banco: SELECTs

public ResultSet executarBuscaSQL(String sql) { try {

Statement st = con.createStatement(); ResultSet rs = st.executeQuery(sql); return rs;

} catch (Exception e) {

System.out.println("Nao foi possível recuperar dados."); return null;

} }

public int executarBuscaSQL2(String sql) { int idDado;

try {

Statement st = con.createStatement(); ResultSet rs = st.executeQuery(sql); rs.next();

idDado = rs.getInt("novoid"); System.out.println(idDado); return idDado;

// return rs;

} catch (Exception e) {

System.out.println("Nao foi possível recupear dados."); return 1;

} }

// executar atualizações no banco: INSERTs, UPDATEs, DELETEs

public void executarSQL(String sql) { try {

Statement st = con.createStatement(); st.executeUpdate(sql);

st.close();

System.out.println("Cadastrado com sucesso");

JOptionPane.showMessageDialog(null, "Cadastrado com sucesso",

(12)

} catch (Exception e) {

System.out.println("Nao foi possível executar SQL."); JOptionPane.showMessageDialog(null, "Não foi possível Cadastrar",

"Erro", JOptionPane.ERROR_MESSAGE); }

}

private int getRowCount(ResultSet rs) { int rows = 0; try { rs.last(); rows = rs.getRow(); rs.beforeFirst(); } catch (Exception e) { System.out

.println("Erro ao capturar a quantidade de linhas do resultset");

}

return rows; }

// fechando a conexão

public void fecharConexao() { try {

con.close(); } catch (Exception e) {

System.out.println("Nao foi possível fechar a conexão."); }

}

public void finalize() { fecharConexao(); }

public void cadastraAluno(principal.Aluno p) {

String sql = "insert into aluno(nome,rg) values ('" + p.getNome() + "','" + p.getRg() + "')";

executarSQL(sql); }

public void deletaAluno(int id) {

String sql = "delete from aluno where idaluno = " + id; executarSQL(sql);

}

(13)

Para que o banco de dados possa ser criado execute o seguinte código no gerenciador do MySql: create database bdexp;

CREATE TABLE aluno (

idaluno INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(25) NOT NULL,

rg INTEGER(10) UNSIGNED NOT NULL, PRIMARY KEY(idaluno)

);

O primeiro corresponde a criação do banco de dados e o segundo corresponde a tabela aluno.

No momento da execução efetue primeiro a criação do banco e com o mesmo selecionado execute o trecho correspondente a tabela.

Dica: Coloque um arquivo.txt contendo esse código acima e também o driver mysql-connectorjava-5.1.6-bin.jar no pacote docs.

Na classe BDMySql deve ficar atento ao trecho que é explicado pelo Professor Renato. Veja! //...

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bdexp", "root",

"portable");

/* O que quer dizer cada um dos parâmentros acima * banco -> "jdbc:mysql://localhost:3306/bdexp" * usuário -> "root"

* senha -> "portable"' */

devemos agora adicionar na classe CadAluno logo após a primeira chave o seguinte código: database.BDMySql bd = database.BDMySql.getInstance();

Agora com o botão direito encima do botão Salvar do formulário CadAluno escolha a opção Events e actionPerformed.

(14)

Dentro do evento adicione o seguinte:

System.out.println("salvando"); // TODO Auto-generated Event

if(verificarCampos()){

principal.Aluno a = new principal.Aluno(); a.setNome(jTNome.getText());

a.setRg(jTRg.getText());

bd.cadastraAluno(a); }

Crie o metodo abaixo.

//feita manualmente inicio

boolean verificarCampos(){ String sErro = ""; boolean erro = false;

if (jTNome.getText().equals("")) {

sErro = "O nome não pode ficar em branco!";

jTNome.grabFocus(); erro = true;

}

else if (jTRg.getText().equals("")) {

sErro = "O RG não pode ficar em branco!";

jTRg.grabFocus(); erro = true; }

if (erro){

javax.swing.JOptionPane.showMessageDialog(null,sErro,"Erro",javax.swing.JOptionP ane.ERROR_MESSAGE);

return false; }

(15)

Se ocorrer erros nas variáveis:

jTNome e jTRg Você deve colocar o nome que foi escolhido para os componentes jTextFiel correspondente.

Execute a Classe Main e tente inserir um registro. Caracteres para nome e número para RG.

Tentou? Deu erro não foi? Isso acontece por que devemos antes dizer ao eclipse que o mesmo deve utilizar o mysql-connector-java-5.1.6-bin.jar. Para isso devemos proceder da seguinte forma: Clique no projeto com o botão direito, New, Folder, nomeie como lib e Finalize.Em seguida copie o driver e cole nesta pasta.

Volte a clicar com o botão direito sobre o projeto e vá em properties, Java Build Path, Libralies add Jars procure o driver e clique em ok!

(16)
(17)

Caso não tenha dado certo procure saber se não há erro na senha do banco de dados da classe BDMySql ou se o driver de conexão foi informado ao eclipse corretamente.

Vamos exportar nossa aplicação como Aplicativo.jar?

Clique com o botão direito sobre a aplicação e escolha a opção export, other, fat jar Exporter, next e no Main-Class clique em Browse... dê ok, next e finalize.

(18)
(19)

Agora que você já exportou o arquivo como arquivo.jar execute-o e verá que o mesmo pode ser executado de qualquer lugar do computador!

Viu como é fácil? Certamente deve haver uma forma diferente de fazer as aplicações nesta

ferramenta. Caso descubra uma maneira mais apropriada ou até mesmo para apontar erros, poderá entrar em contato através de mensagens no http://www.jeandervall.wordpress.com

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Como já destacado anteriormente, o campus Viamão (campus da última fase de expansão da instituição), possui o mesmo número de grupos de pesquisa que alguns dos campi

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

Foi apresentada, pelo Ademar, a documentação encaminhada pelo APL ao INMETRO, o qual argumentar sobre a PORTARIA Nº 398, DE 31 DE JULHO DE 2012 E SEU REGULAMENTO TÉCNICO

Neste trabalho avaliamos as respostas de duas espécies de aranhas errantes do gênero Ctenus às pistas químicas de presas e predadores e ao tipo de solo (arenoso ou

Dessa forma, os níveis de pressão sonora equivalente dos gabinetes dos professores, para o período diurno, para a condição de medição – portas e janelas abertas e equipamentos

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

O desenvolvimento desta pesquisa está alicerçado ao método Dialético Crítico fundamentado no Materialismo Histórico, que segundo Triviños (1987)permite que se aproxime de