Java JCreator: Desenvolvendo aplicações em Java com JCreator

Veja nesse artigo como desenvolver uma aplicação básica utilizando a linguagem de programação JAVA empregando o ambiente de desenvolvimento JCreator, fazendo acesso com o banco de dados MS Access.

O Microsoft Access é um sistema de gerenciamento de banco de dados desenvolvido pela Microsoft e incluso no pacote Office. Para esse exemplo é utilizado a versão que está presente no Office 2007.

A ideia inicial é criar um projeto simples responsável por gerenciar Filmes contendo inserção, alteração, exclusão e até uma pesquisa básica e intuitiva.

Após ter aberto o software, é preciso criar um novo banco de dados em branco, como demonstra na Figura 1.

Figura 1. Tela de criação de um novo arquivo de banco de dados onde consta a localização, nome do banco de dados e o tipo. Configurado, é só pressionar OK
Nota: Ao criar um novo banco de dados (com o nome de Banco), ele ficará com esse formato e extensão de arquivo: Banco.accdb. Saiba mais sobre a linguagem Java e sobre diferentes bancos de dados relacionais.

Após ter criado o banco de dados, ao clicar com o botão direito em cima de Tabela, vai aparecer um menu de opções e ao clicar em Abrir ele ficará com essa aparência de acordo com a Figura 2, presente na versão 2007.

Figura 2. Tela inicial da tabela a ser criada e também mostra o menu de opções da tabela
Nota: Ao clicar em Modo Design, vai surgir uma janela pequena para dar um nome para a tabela, que nesse caso será o nome FILMES.

Logo após ter colocado o nome para a tabela, o layout dos campos ficará visível para que sejam inseridos o nome, o tipo e a descrição.

De acordo com a Figura 3, é proposto informar os campos descritos na Tabela 1 (Propriedade dos campos) com os respectivos nomes, tipos e a chave primária.

Nome do Campo Tipo Tamanho Chave Primária
FICODIGO TEXTO 5 PK
FINOME TEXTO 35
FIGENERO TEXTO 8
FIPRODUT TEXTO 15
FIDATCOM Data/Hora -
FIANOPRO TEXTO 4
FITEMDUR TEXTO 3
Tabela 1. Propriedades dos campos onde constam o nome, tipo, tamanho e chave primária

A Figura 3 ilustra o layout final do campo FICODIGO e exibe todos os campos criados juntamente com seus respectivos tipo de dados.

Figura 3. Layout do Modo Design após ter configurado os campos de acordo com a Tabela 1

Finalmente, após ter configurado todos os campos, é preciso ir para a opção Abrir (visualizado na Figura 2) e inserir alguns filmes. A Figura 4 exemplifica alguns registros cadastrados.

Figura 4. Layout de alguns registros cadastrados

ODBC

O ODBC é um gerenciador de conexões para a fonte de dados SGBD e nele podem ser criadas diversas interfaces que fazem acesso aos inúmeros bancos de dados existentes.

Para criar uma nova fonte de dados, no pesquisar ou no executar do Windows, basta digitar odbcad32 (caso o sistema operacional for de 32 bits) ou odbcad62 (caso o sistema operacional for de 64 bits). Nesse exemplo é utilizado o odbcad32, conforme ilustra a Figura 5.

Figura 5. Comando odbcad32 sendo encontrado durante a pesquisa

Após ter aberto o odbcad32, será exibido a tela referente a um conjunto de fonte de dados, de acordo com a Figura 6.

Figura 6. Administrador de fonte de dados ODBC
Nota: Nesse exemplo já existem outras fontes de dados criadas anteriormente

No botão adicionar, é preciso selecionar um driver de conexão, como demonstra a Figura 7.

Figura 7. Tela para escolha do driver de conexão. Nesse caso é escolhido Microsoft Access Driver (*.mdb, *.accdb)

Clicado no botão Concluir, vai aparecer a janela Configurar ODBC para Microsoft Access e é necessário colocar um nome, que nesse caso é MeuBanco. Após isso, tem que escolher o banco de dados em um caminho salvo anteriormente e para isso clica em Selecionar..., depois aparecerá a janela Selecionar banco de dados. Feito isso, é preciso selecionar o banco de dados, de acordo com a Figura 8.

Figura 8. Janelas de configuração do nome da fonte de dados e de seleção para caminho do banco de dados

IDEJCREATOR

O JCreator é uma IDE Java criado pela Xinox Software e sua interface lembra a do Microsoft Visual Studio. Por ela ser programada totalmente em C++, a Xinox afirma que o JCreator é mais rápido que as IDE(s) concorrentes baseadas na linguagem JAVA. Essa IDE está disponível apenas para o sistema operacional Windows, porém, tanto a versão LE quanto a versão Pro do JCreator funciona adequadamente no Linux usando o Wine.

O conjunto de recursos disponíveis para a versão Pro é comparável à de outros IDE(s) no que diz respeito a recursos de gerenciamento e edição de projetos, mas não tem recursos avançados, tais como refatoração, dentre outros, que pode ser encontrada em outras IDE(s) que acercam a linguagem JAVA como Eclipse e Netbeans, por exemplo.

Já a versão gratuita LE carece de mais alguns recursos como conclusão de código, que são incluídas com outras IDEs livres e também não tem o nível de extensibilidade através de plug-ins de terceiros que é comum em outras IDE(s) populares do JAVA.

Dentre as características do JCREATOR, podemos destacar:

Além disso, temos como vantagens do JCREATOR uma interface um modo simples e facilitado e ele ocupa pouco tamanho em disco, depois de instalado, comparado com outras IDE(s).

Entre as desvantagens podemos destacar que a IDE JCreator está disponível apenas para o sistema operacional Windows, embora o Linux Wine pode ser usado em sistemas Unix para executar o JCreator. Além disso, na maioria das vezes, o JCreator tem o navegador Internet Explorer como sendo o padrão, as configurações de impressoras usadas para impressões não são confiáveis e suas versões são pagas.

Iniciando o Projeto Java

Para iniciar um novo projeto JAVA pelo JCreator é necessário ter o mesmo e também um JDK instalado e recente. Feito isso, é só ir na barra de menus (caso esteja na versão inglês) FileNew Project (ArquivoNovo Projeto) e definir o nome (Exemplo) para o novo Projeto JAVA que será sobre Gerenciamento de Filmes.

Finalmente é só colocar no projeto JAVA o que está descrito na Listagem 1.

importjava.sql.*; importjavax.swing.*; importjava.awt.*; importjava.awt.event.*; classExemplo extends JFrame implements ActionListener { JLabel L1,L2,L3,L4,L5,L6,L7,L8; JButton b1,b2,b3,b4,b5; staticJTextFieldtfCodigo,tfNome,tfGenero,tfProdut,tfDatcom,tfAnopro,tfTemdur; JPanel p1 = new JPanel(); ResultSetrs; Statement MeuState; public static void main(String args[]) { JFrame Janela = new Exemplo(); Janela.show(); WindowListener x = new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }; Janela.addWindowListener(x); } Exemplo() { p1.setLayout(new FlowLayout(FlowLayout.LEFT)); L1 = new JLabel("Código "); L2 = new JLabel("Título"); L3 = new JLabel("Gênero"); L4 = new JLabel("Produtora"); L5 = new JLabel("Data de Compra "); L6 = new JLabel("Ano de Produção"); L7 = new JLabel("Tempo de Duração"); L8 = new JLabel(" "); for (int i=0;i<60;i++) L8.setText(L8.getText()+" "); tfCodigo = new JTextField(10); tfCodigo.addActionListener(this); tfNome = new JTextField(35); tfGenero = new JTextField(10); tfProdut = new JTextField(15); tfDatcom = new JTextField(8); tfAnopro = new JTextField(5); tfTemdur = new JTextField(5); b1=new JButton("Inserir"); b2=new JButton("Atualizar"); b3=new JButton("Excluir"); b4=new JButton("Localizar"); b5=new JButton("Novo"); b1.setBackground(new Color(180,180,250)); b2.setBackground(new Color(180,180,250)); b3.setBackground(new Color(180,180,250)); b4.setBackground(new Color(180,180,250)); b5.setBackground(new Color(180,180,250)); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); p1.add(L1); p1.add(tfCodigo); p1.add(L2); p1.add(tfNome); p1.add(L3); p1.add(tfGenero); p1.add(L4); p1.add(tfProdut); p1.add(L5); p1.add(tfDatcom); p1.add(L6); p1.add(tfAnopro); p1.add(L7); p1.add(tfTemdur); p1.add(L8); p1.add(b1); p1.add(b2); p1.add(b3);p1.add(b4);p1.add(b5); getContentPane().add(p1); setTitle("Cadastramento de Filmes"); setSize(610,140); setResizable(false); String url = "jdbc:odbc:MeuBanco"; try { Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); Connection MinhaConexao = DriverManager.getConnection(url); MeuState = MinhaConexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rs = MeuState.executeQuery("SELECT * FROM Filmes"); rs.first(); atualizaCampos(); } catch(ClassNotFoundException ex) { System.out.println("Driver JDBC-ODBC nãoencontrado!"); } catch(SQLExceptionex) { System.out.println("Problemas na conexao com a fonte de dados"); } } public void actionPerformed(ActionEvent e) { if (e.getSource()==b5)//limpar { limpaCampos(); return; } if (e.getSource()==b1) //inserir { if (tfCodigo.getText().equals("")) { JOptionPane.showMessageDialog(null,"Informe um código"); } else { try { String SQL = "INSERT INTO Filmes (Ficodigo,Finome,Figenero," + "Fiprodut,Fidatcom,Fianopro,Fitemdur) Values ('"+ tfCodigo.getText()+"','"+ tfNome.getText()+"','"+ tfGenero.getText()+"','"+ tfProdut.getText()+"','"+ tfDatcom.getText()+"','"+ tfAnopro.getText()+"','"+ tfTemdur.getText()+"')"; MeuState.executeUpdate(SQL); JOptionPane.showMessageDialog(null,"Gravação realizada com sucesso!"); limpaCampos(); } catch(SQLException ex) { if (ex.getMessage().equals("General error")) JOptionPane.showMessageDialog(null,"Filme já Cadastrado"); else JOptionPane.showMessageDialog(null,"Data Inválida! \nEla precisa ser informada e que esteja no formato: dd/mm/aaaa"); } } }// Final da Inclusão if (e.getSource()==b2) //Atualizar { if (tfCodigo.getText().equals("")) { JOptionPane.showMessageDialog(null,"Não há filme pesquisado para ser alterado!"); } else { try { String SQL = "UPDATE Filmes SET "+ "Ficodigo='"+tfCodigo.getText()+"',"+ "Finome='"+tfNome.getText()+"',"+ "Figenero='"+tfGenero.getText()+"',"+ "Fiprodut='"+tfProdut.getText()+"',"+ "Fidatcom='"+tfDatcom.getText()+"',"+ "Fianopro='"+tfAnopro.getText()+"',"+ "Fitemdur='"+tfTemdur.getText()+"' "+ "WHERE Ficodigo = '"+tfCodigo.getText()+"'"; int r = MeuState.executeUpdate(SQL); if (r==1) JOptionPane.showMessageDialog(null,"Atualização realizada com sucesso"); else JOptionPane.showMessageDialog(null,"Esse Filme ainda não está cadastrado \nPressione Inserir para cadastrar filme!"); } catch(SQLException ex) { JOptionPane.showMessageDialog(null,"Ocorreu um erro durante a alteração do Filme ou algum dado foi digitado incorretamente!"); } } }// - Final da Atualização - if (e.getSource()==b3) // Excluir { try { String SQL = "SELECT Ficodigo, Finome FROM Filmes Where Ficodigo = '"+tfCodigo.getText()+"'"; rs = MeuState.executeQuery(SQL); String nome = ""; try { rs.next(); nome = "Deletar o Filme: "+rs.getString("finome"); } catch(SQLException ex1) { JOptionPane.showMessageDialog(null,"Filme nao cadastrado!"); return; } int n = JOptionPane.showConfirmDialog(null,nome," ",JOptionPane.YES_NO_OPTION); if (n==JOptionPane.YES_OPTION) { SQL = "DELETE FROM Filmes Where Ficodigo = '"+tfCodigo.getText()+"'"; int r = MeuState.executeUpdate(SQL); if (r==1) JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso"); else JOptionPane.showMessageDialog(null,"Não foi possível excluir o filme"); } else return; } catch(SQLException ex) { JOptionPane.showMessageDialog(null,"Houve um erro durante a execução do comando SQL"); } limpaCampos(); }// - Final da Exclusão - if (e.getSource()==b4 || e.getSource()==tfCodigo) { try { String SQL = "SELECT * FROM Filmes Where Ficodigo = '"+tfCodigo.getText()+"'"; rs = MeuState.executeQuery(SQL); rs.next(); tfCodigo.setText(rs.getString("Ficodigo")); tfNome.setText(rs.getString("Finome")); tfGenero.setText(rs.getString("Figenero")); tfProdut.setText(rs.getString("Fiprodut")); tfDatcom.setText(""+rs.getDate("Fidatcom")); tfAnopro.setText(rs.getString("Fianopro")); tfTemdur.setText(rs.getString("Fitemdur")); } catch(SQLException ex) { JOptionPane.showMessageDialog(null,"Filme nao Encontrado!"); return; } }// - Final da Localização - } public static void limpaCampos() //limpar campos { tfCodigo.setText(""); tfNome.setText(""); tfGenero.setText(""); tfProdut.setText(""); tfDatcom.setText(""); tfAnopro.setText(""); tfTemdur.setText(""); } public void atualizaCampos() //atualizar campos { try { tfCodigo.setText(rs.getString("Ficodigo")); tfNome.setText(rs.getString("Finome")); tfGenero.setText(rs.getString("Figenero")); tfProdut.setText(rs.getString("Fiprodut")); tfDatcom.setText(""+rs.getDate("Fidatcom")); tfAnopro.setText(rs.getString("Fianopro")); tfTemdur.setText(rs.getString("Fitemdur")); } catch(SQLExceptionex) { JOptionPane.showMessageDialog(null,"Ocorreu um erro no momento de atualização!"); } } }
Listagem 1. Projeto Java (completo) criado no JCreator para controle de filmes

Vamos entender o código do projeto apresentado na Listagem 1:

String url = "jdbc:odbc:MeuBanco"; //string que recebe o conjunto de caracteres referente ao driver JDBC direcionando //ao MeuBanco (criado anteriormente no ODBC)

e também pelos comandos que estão dentro de um try catch:

Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); //Ponteiro para o JDBC que chama o banco de dados criado via ODBC. Connection MinhaConexao = DriverManager.getConnection(url); //variável recebendo a conexão para o JDBC. MeuState = MinhaConexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); //cria conexão do tipo sensitive e somente leitura. catch(ClassNotFoundException ex) //Erro de classe não encontrado, caso isso ocorra é emitido uma mensagem. catch(SQLExceptionex) //Erro de instrução de SQL informado errado, se acontecer isso é emitido uma mensagem.

Após isso, basta executar o projeto (com a tecla de atalho F5) e aparecerá a janela da forma, como ilustra a Figura 9.

Figura 9. Tela inicial do projeto JAVA – Gerenciamento de Filmes
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados