Criaremos uma aplicação CRUD (criar, ler, atualizar, excluir) de banco de dados com um componente personalizado usado para visualizar os dados (visualização car design).
Este tutorial é amplamente baseado em um screencast que foi baseado em uma construção de desenvolvimento.
Parte da interface do usuário foi alterada depois que essa demonstração foi feita, sendo assim, você pode perceber algumas diferenças entre este tutorial e a demonstração.
Você pode visualizar a demonstração (cerca de 9 minutos) agora
ou baixar um zip
da demonstração.
Antes de começar a criar uma aplicação CRUD (criar, ler, atualizar, excluir) de área de trabalho
no IDE, você já deve ter o IDE conectado ao banco de dados que a sua aplicação usará. Ter essa configuração configurada antecipadamente permite que você tire vantagem dos recursos do IDE que automatizam a vinculação do banco de dados à sua aplicação.
Neste tutorial, fornecemos instruções para o uso de um banco de dados Java DB, já que existe uma interface conveniente para iniciar e parar o servidor de banco de dados Java DB a partir do IDE.
Entretanto, você também pode usar um servidor de banco de dados diferente sem muita dificuldade.
Primeiro, verifique se você possui o Java DB registrado no IDE.
O Java DB é
registrado automaticamente no IDE em inúmeros casos, tal como quando
você possui o servidor da aplicação Sun Java System registrado no IDE
ou quando você está executando no JDK 6.
Para determinar se o Java DB está registrado no IDE:
Para registrar manualmente o Java DB no IDE:
- Escolha Ferramentas > Banco de dados Java DB > Configurações.
- No campo Instalação do Java DB, indique o caminho para o servidor de banco de dados.
- Na propriedade Localização do banco de dados, indique a pasta em que você deseja armazenar os bancos de dados.
- Clique em OK.
Quando o Java DB estiver registrado no IDE, você pode facilmente iniciar e parar o servidor de banco de dados, assim como criar um novo banco de dados.
Para iniciar o servidor de banco de dados:
- Escolha Ferramentas > Banco de dados Java DB > Iniciar servidor.
Caso você ainda não tenha uma localização definida para o banco de dados, a caixa de diálogo Definir localização do banco de dados aparece. Indique uma localização para o servidor de banco de dados armazenar os bancos de dados. Você pode criar
uma nova pasta lá, se quiser.
Quando o servidor é iniciado, a aba Processo do banco de dados Java DB se abre
na janela Saída e exibe uma mensagem semelhante à seguinte:
Apache Derby Network Server - 10.2.2.0 - (485682) started and ready
to accept connections on port 1527 at 2007-09-05 10:26:25.424 GMT
Para criar o banco de dados:
- Escolha Ferramentas > Banco de dados Java DB > Criar banco de dados. A
caixa de diálogo Criar Java DB se abre.
- No campo de texto Nome do banco de dados, digite car_database. Defina também o Nome de usuário e a Senha como nbuser.
- Clique em OK.
Até aqui, iniciamos com êxito o servidor de banco de dados e criamos um banco de dados.
Entretanto, ainda precisamos conectar ao novo banco de dados antes de começar a trabalhar com ele no IDE. Para conectar ao banco de dados car_database:
- Alterne para a janela Serviços (Ctrl+5) e expanda o nó Bancos de dados para ver seu novo banco de dados.
- Clique com o botão direito do mouse no nó da conexão do banco de dados
(jdbc:derby://localhost:1527/car_database[nbuser on NBUSER]) e escolha
Conectar.
O ícone do nó da conexão agora deve aparecer por inteiro (
), o que significa que a conexão foi bem sucedida.
- Expanda o nó da conexão, clique com o botão direito do mouse em seu subnó Tabelas, e escolha Executar comando.
- Copie o conteúdo do arquivo
car.sql
e cole-o na aba Comando SQL 1 do Editor de código-fonte.
Esse é o script SQL que preenche o banco de dados com dados sobre os carros.
- Clique no botão Executar SQL (
) na
barra de ferramentas do Editor de código-fonte para executar script.
- Escolha Projeto > Novo projeto.
- No primeiro painel do assistente, expanda a categoria Java e selecione o modelo Aplicação de área de trabalho Java. Clique em Próximo.
O modelo Aplicação de área de trabalho Java oferece muitos dos fundamentos de uma aplicação visual, incluindo itens e comandos de menu básicos.
- Na página Nome e localização do assistente, faça o seguinte:
- No campo Nome do projeto, digite CarsApp. O valor deste campo define o nome de exibição do projeto na janela Projetos.
- Opcionalmente, edite o campo Localização do projeto para alterar a localização dos metadados do seu projeto.
- No campo Escolher shell da aplicação, selecione Aplicação de banco de dados.
- Clique em Próximo.
- Na página Tabela mestre do assistente, selecione a conexão do banco de dados CAR.
A listagem do banco de dados devem se parecer com algo semelhante ao seguinte: jdbc:derby://localhost:1527/car_database[nbuser on NBUSER]
- Preencha a senha (nbuser) do banco de dados e selecione a caixa de verificação
Lembrar senha durante esta sessão.
Depois que a conexão ao banco de dados for estabelecida, o campo Tabela de banco de dados deve exibir CAR e a lista Colunas a serem incluídas deve incluir os nomes de
10 colunas do banco de dados CAR. Por enquanto, usaremos somente cinco delas na aplicação.
- Selecione o nome das cinco colunas inferiores (começando com
SUN_ROOF e terminando com MODERNNESS) e clique no botão < para movê-las para a coluna esquerda. Clique em Próximo.
- No painel Opções de detalhe, clique em Terminar.
Em seguida, o assistente gera uma interface de usuário básica com uma tabela e uma conexão de banco de dados. Deve-se levar alguns segundos enquanto o IDE gera o
projeto e o código.
Nesse momento, você possui uma aplicação básica em execução com uma interface do usuário gráfica (GUI) que possui os seguintes recursos:
- Habilidade de visualizar e modificar valores em cinco colunas do banco de dados CAR.
- Itens de menu básicos.
- Persistência de seu estado de janela entre sessões. Quando você
fecha a aplicação, a posição e o tamanho da janela são lembrados. Sendo assim,
quando você reabre a aplicação, a janela abre na mesma posição que estava quando foi fechada.
- Uma caixa de diálogo Sobre, que você pode personalizar facilmente.
- Arquivos .properties contendo os rótulos na interface do usuário. Usar arquivos .properties é uma boa forma de manter a lógica do seu código separada do texto que aparece na interface do usuário da sua aplicação. Tal separação é útil por tornar mais fácil localizar seu programa, entre outros motivos.
Para ver alguns dos recursos que já foram construídos na aplicação, siga estas etapas:
- Clique com o botão direito do mouse no nó do projeto e escolha Executar.
Após alguns segundos, a aplicação se inicia e uma janela chamada Exemplo de aplicação de banco de dados aparece.
Esta janela contém uma tabela e alguns controles que permitem que você edite o banco de dados CARS.
- Selecione o primeiro registro na tabela (para Acura).
- Selecione o campo de texto Preço e substitua o valor existente por 46999. Em seguida, pressione Enter.
O valor deve aparecer atualizado na tabela. (Entretanto, o valor não será
refletido no banco de dados até que você clique em Salvar).
Semelhantemente, você pode atualizar quaisquer outros valores na tabela.
- Clique em Novo para criar um novo registro. Em seguida, preencha os valores de cada um dos campos (Marca, Modelo, Preço, Estilo, Cor). Por exemplo, você pode preencher
Trabant, Classic, 1000, wagon e azul. Clique em Salvar
para salvar a entrada no banco de dados.
- Clique na barra de título Exemplo de aplicação de banco de dados e arraste a aplicação para um lugar diferente em sua tela.
- Clique na borda esquerda da janela Exemplo de aplicação de banco de dados e arraste para a esquerda para aumentar o tamanho da janela.
- Na barra de menu Exemplo de aplicação de banco de dados, escolha Arquivo > Sair.
- No IDE, clique com o botão direito do mouse no nó do projeto e escolha Executar projeto.
A janela Exemplo de aplicação de banco de dados se abrirá com o mesmo tamanho e posição que tinha quando você fechou a aplicação.
A conexão entre a tabela mestre (um componente JTable) e o banco de dados é manipulada com uma combinação dos seguintes mecanismos, todos gerados pelo IDE:
- A classe de entidade Car.java, que é usada para ler e gravar dados na tabela do banco de dados CAR. As classes de entidade são um tipo especial de classe que permite a você interagir com bancos de dados através do código Java.
As classes de entidade usam anotações Java para mapear campos de classe para colunas do banco de dados. .
- O arquivo META-INF/persistence.xml, que define uma conexão entre o banco de dados e a classe da entidade. Esse arquivo também é conhecido como a unidade de persistência.
- Usando vinculação de beans para conectar as propriedades da classe de entidade com as propriedades do componente JTable. A vinculação de beans é uma nova tecnologia baseada em JSR 295 e que provavelmente será incluída em uma futura versão do Java SE.
- Os objetos entityManager, query e list,
que são definidos na classe CarsAppFrame e
que são listados na janela Inspetor.
- O objeto do gerenciador de entidades é usado para recuperar e confirmar dados no escopo definido da unidade de persistência.
- O objeto de consulta define como a coleção de dados particular é recuperada do gerenciador de entidades. (Você pode alterar a forma em que o objeto de consulta funciona, selecionando o objeto de consulta na janela Inspetor e alterando a propriedade query na folha de propriedades.
A propriedade query usa a linguagem de consulta JPA.
- O objeto da lista é uma coleção observável que mantém os dados da consulta. Uma coleção observável é um tipo especial de coleção em que você pode colocar um ouvinte para descobrir quando as alterações na coleção foram feitas.
Usando a janela Inspetor e a folha de propriedades, você pode seguir estas etapas para ver como a JTable é vinculada aos dados:
- Na janela Inspetor, selecione o nó
mainPanel[JPanel] > masterScrollPane [ScrollPane] > masterTable [JTable].
Em seguida, clique na aba Vinculação na janela Propriedades.
- Examine a propriedade dos elementos para configurar se ela está vinculada a uma lista.
- Clique no botão de reticências [...] para abrir o personalizador Vincular masterTable.elements, onde você pode personalizar ainda mais a vinculação entre a tabela e o banco de dados. Por exemplo, você pode ver que o personalizador permite que você especifique quais colunas da tabela são vinculadas.
Além da categoria Vinculação na folha de propriedades, você também pode usar o menu Vincular no menu de contexto.
Adicionando mais controles
Agora iremos adicionar controles ao formulário para alguns dos atributos que excluímos inicialmente.
Em vez de usar uma tabela, adicionaremos componentes JSlider (para os atributos tamanho do pneu e modernidade) e componentes JCheckbox (para o teto solar e o spoiler).
Siga estas etapas para adicionar os componentes adicionais:
- Adicione o primeiro controle deslizante, clicando no botão Controle deslizante na janela Paleta e, em seguida, clicando no formulário logo acima do botão Novo. Antes de clicar no formulário para inserir o controle deslizante, verifique se não estão sendo mostradas linhas guias abauladas horizontais.
Essas linhas indicam que o controle deslizante será inserido na mesma linha que os campos ou botões. Veja a figura abaixo para ver onde você deve soltar o controle deslizante no formulário.
Observação: se você soltar um componente em um lugar que não deseja e, portanto, causar algumas alterações de layout indesejadas, use o comando Desfazer para reverter as alterações. Escolha Editar > Desfazer ou pressione Ctrl-Z.
- Se necessário, estenda o controle deslizante para a esquerda para alinhá-lo com o lado esquerdo dos componentes do campo de texto.
- Estenda o controle deslizante para a direita para aumentar toda a largura do formulário.
- Adicione um rótulo à esquerda do controle deslizante e defina seu texto como Tamanho do pneu.
(Clique no rótulo para torná-lo editável).
- Adicione outro controle deslizante abaixo do primeiro controle deslizante, e ajuste sua largura e alinhamento onde necessário.
- Adicione outro rótulo abaixo do rótulo Tamanho do pneu e defina seu texto como Modernidade.
- Adicione duas caixas de verificação abaixo dos controles deslizantes. Defina seu texto como Spoiler e Teto solar.
(Torne o texto de exibição editável, clicando uma vez na caixa de verificação, pausando e clicando novamente na caixa de verificação. Você também pode clicar com o botão direito do mouse na caixa de verificação e escolha Editar texto).
O formulário deve se parecer com a captura de tela mostrada abaixo.

"
Vinculando controles a valores na tabela
Agora usaremos recursos de vinculação de beans para vincular os valores mostrados em células da tabela ao estado dos controles que adicionamos. Isso permitirá que você altere os valores das células na
tabela por meio de controles deslizantes e caixas de verificação.
Para vincular os controles deslizantes aos seus elementos de tabela correspondentes:
- No formulário, clique com o botão direito do mouse no controle deslizante Tamanho do pneu e escolha Vincular > valor.
- Na lista suspensa Origem da vinculação da caixa de diálogo Vinculação, selecione masterTable.
- Na lista suspensa Expressão de vinculação, selecione o nó selectedElement > tiresize.
"
- No formulário, clique com o botão direito do mouse no controle deslizante Modernidade e escolha Vincular > valor.
- Na lista suspensa Origem da vinculação da caixa de diálogo Vinculação, selecione masterTable.
- Na lista suspensa Expressão de vinculação, selecione selectedElement > modernness.
Para vincular as caixas de verificação aos seus elementos de tabela correspondentes:
- No formulário, clique com o botão direito do mouse na caixa de verificação Spoiler e escolha Vincular > selecionado.
- Na lista suspensa Origem da vinculação da caixa de diálogo Vinculação, selecione masterTable.
- Na lista suspensa Expressão de vinculação, selecione selectedElement > spoiler.
- Clique em OK para sair da caixa de diálogo Vincular.
- No formulário, clique com o botão direito do mouse na caixa de verificação Teto solar e escolha Vincular > selecionado.
- Na lista suspensa Origem da vinculação da caixa de diálogo Vinculação, selecione masterTable.
- Na lista suspensa Expressão de vinculação, selecione selectedRow > sunRoof.
- Clique em OK.
Agora você deve ser capaz de alterar as entradas do banco de dados usando o controle deslizante e as caixas de verificação.
Para verificar se os controles deslizantes e as caixas de verificação funcionam:
- Abra a janela Serviços.
- Verifique se o IDE tem uma conexão ao banco de dados, clicando com o botão direito do mouse em Bancos de dados > jdbc:derby;//localhost:1527/car_database e escolhendo Conectar.
- Clique com o botão direito do mouse no nó Bancos de dados > jdbc:derby;//localhost:1527/car_database > Tabelas > e
escolha Visualizar dados.
- Examine os valores SUN_ROOF, SPOILER, TIRE_SIZE e MODERNNESS
do primeiro registro.
- Escolha Executar > Executar projeto principal para executar a aplicação.
A aplicação em execução deve ser semelhante à captura de tela mostrada abaixo.
"
- Na aplicação em execução, selecione o primeiro registro.
- Mova os controles deslizantes e altere as seleções da caixa de verificação.
- Clique em Salvar para salvar as alterações no banco de dados.
- Na janela Serviços, use novamente o comando Visualizar dados.
Os valores no banco de dados devem refletir as alterações que você fez.
Para uma demonstração ainda mais gráfica da vinculação de beans em ação,
vamos adicionar um componente personalizado que pintará uma visualização
do carro selecionado. Vincularemos as propriedades deste componente aos elementos de tabela correspondente. Em seguida, quando você executa novamente a aplicação, a visualização do carro
será modificada quando você alterar a linha selecionada e os valores dos vários campos.
Para tornar o componente CarPreview disponível para o projeto CarsApp:
- Caso ainda não o tenha feito, baixe o arquivo CarPreview.zip.
- Usando uma ferramenta zip padrão, extraia os arquivos do zip.
- Escolha Arquivo > Abrir projeto e navegue para o conteúdo extraído do arquivo zip e selecione o projeto CarPreview.
- Clique em Abrir projeto.
O projeto se abre no IDE.
- Clique com o botão direito do mouse no nó CarPreview e escolha Construir.
Isso compila os arquivos no projeto para que você possa usar a classe CarPreview como um
bean que pode ser arrastado e solto diretamente no formulário.
Esse componente foi escrito como um componente JavaBeans, sendo assim, você
poderia adicioná-lo à Paleta, o que seria conveniente para adicionar o
componente a várias aplicações. Mas por enquanto,
iremos simplesmente arrastar o componente diretamente para a sua aplicação a partir
da janela Projetos.
Para adicionar o componente CarPreview à aplicação:
- Na janela Projetos, expanda os nós
Car Preview > Source Packages > carpreview >.
- Arraste a classe CarPreview.java para o formulário. Para inseri-la corretamente logo baixo dos menus, coloque-a sobre a tabela alinhada à esquerda com outros controles e ajuste à parte inferior da barra de menu, como mostrado na imagem abaixo.
- Redimensione horizontalmente o componente de visualização sobre o formulário inteiro.
- Da mesma forma que você vinculou os controles deslizantes e as caixas de verificação aos elementos no componente masterTable, vincule toda as propriedades de vinculação do componente CarPreview aos atributos selectedElement correspondentes da masterTable.
Use o menu popup Vincular ou a aba Vinculação na folha de propriedades.
- Execute novamente a aplicação CarApp.
Na aplicação em execução, você pode ver o componente CarPreview se alterar enquanto você seleciona linhas diferentes na tabela, altera valores na tabela,
move os controles deslizantes, marca e desmarca as caixas de verificação.
A imagem abaixo mostra a aplicação em execução final.
Próximas etapas
Este tutorial ofereceu uma introdução ao suporte a Framework de aplicação Swing e Vinculação de beans no IDE.
Para uma introdução mais geral ao uso do Construtor de GUIs do IDE, consulte Construção de GUIs no NetBeans IDE.
Para obter mais informações sobre como usar a vinculação de beans no IDE, consulte
Beans de vinculação e dados em uma aplicação de área de trabalho.
Veja também